#include <iostream>
#include <vector>
using namespace std;
void srez(vector<int> arr, int x, int y, int z = 1) {
for (int i = y; i >= x; i -= z) {
cout << arr[i] << ' ';
}
cout << '\n';
}
int main() {
int n;
cin >> n;
vector<int> arr(n);
for (int i = 0; i < n; ++i) cin >> arr[i];
int x, y, z;
cin >> x >> y >> z;
srez(arr, x, y);
srez(arr, x, y, z);
return 0;
}
Писал код сам, тоже по этой задаче С++
wog18303
сейчас
Информатика
1 - 4 классы
+18 б.
ответ дан
с программой, даже условие не могу понять хотя-бы натолкнуть на мысль
Условие
Напишите функцию, которая как результат будет возвращать подпоследовательность элементов массива, начиная с позиции X до позиции Y включительно в обратном порядке с шагом Z как новый массив. По умолчанию шаг должен быть равен 1.
Ваша задача для заданного массива вывести срез с шагом 1 и с шагом, заданным с клавиатуры.
Формат входных данных
В первой строке задается натурально число N, (N ≤ 10000)- размер массива.
В следующей строке вводятся N целых чисел, по модулю не превосходящих 109 - элементы массива.
В последней строке вводятся три целых числа X, Y и Z (0 ≤ X ≤ Y < N, 0 < Z < N)- границы и шаг среза соответственно.
Формат выходных данных
В первой строке выведите перевернутый фрагмент массива с шагом 1.
Во второй строке выведите перевернутый фрагмент массива с шагом Z.
1
СМОТРЕТЬ ОТВЕТ
ДОБАВИТЬ ОТВЕТ
Спросите wog18303 о заданном вопросе...
wog18303 ждёт твоего решения.
ответь на вопрос и заработай .
ответ
5,0/5
1
slysnenko
хорошист
34 ответов
469 пользователей, получивших
#include <iostream>
#include <vector>
using namespace std;
void srez(vector<int> arr, int x, int y, int z = 1) {
for (int i = y; i >= x; i -= z) {
cout << arr[i] << ' ';
}
cout << '\n';
}
int main() {
int n;
cin >> n;
vector<int> arr(n);
for (int i = 0; i < n; ++i) cin >> arr[i];
int x, y, z;
cin >> x >> y >> z;
srez(arr, x, y);
srez(arr, x, y, z);
return 0;
}
Объяснение:
Поделитесь своими знаниями, ответьте на вопрос:
const
n = 2;
type
student = record
f: string;
p1, p2, p3: integer;
end;
var
a: array[1..n] of student;
m: array[1..n]of real;
i: integer;
s: real;
begin
s := 0;
for i := 1 to n do
begin
writeln('Введите фамилию ', i, ' ученика ');
readln(a[i].f);
writeln('оценки по 3 предметам ');
readln(a[i].p1, a[i].p2, a[i].p3);
if (a[i].p1 + a[i].p2 + a[i].p3) / 3 >= s then begin
s := (a[i].p1 + a[i].p2 + a[i].p3) / 3;
m[i] := s;
end;
end;
if m[1] = m[2] then writeln('Средний учащихся одинаков')
else if m[1] > m[2] then
writeln(a[1].f, ' учится лучше')
else writeln(a[2].f, ' учится лучше')
end.
Тест №1
Введите фамилию 1 ученика
Иванов
оценки по 3 предметам
3 4 5
Введите фамилию 2 ученика
Петров
оценки по 3 предметам
4 4 4
Средний учащихся одинаков
Тест №2
Введите фамилию 1 ученика
Иванов
оценки по 3 предметам
3 4 4
Введите фамилию 2 ученика
Петров
оценки по 3 предметам
5 5 5
Петров учится лучше
//Задание 34
var a,b,c,min,max:integer;
begin
readln(a,b,c);
min:=a; max:=a;
if b<min then min:=b;
if b>max then max:=b;
if c<min then min:=c;
if c>max then max:=c;
writeln(max-min);
end.