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
max_elements = 1000;
a = 1;
b = 15;
first_file_name = '1.txt';
second_file_name = '2.txt';
var
i, j, n, r:integer;
p:real;
ar:array[1..max_elements] of integer;
f1, f2:text;
begin
randomize;
writeln('Input n = ');
readln(n);
for i:=1 to n do begin
ar[i]:=random(b-a+1)+a;
end;
assign(f1, first_file_name);
rewrite(f1);
for i:=1 to n do begin
writeln(f1, ar[i]);
end;
close(f1);
assign(f2, second_file_name);
rewrite(f2);
for i:=1 to n do begin
p:=1;
for j:=1 to i do
p:=p*ar[j];
writeln(f2, p:0:0);
end;
close(f2);
readln;
end.
#include
#include
#include
#include
#include
#include
typedef struct
{
char imya[40];
char familiya[40];
char otchestvo[40];
int telefon;
int texpasport;
float pages ;
}gor;
void form(char mass[10], char *imya, char *familiya, char *otchestvo, int telefon, int texpasport)
{
file *f;
gor y;
int i;
if ((f=fopen(mass,"w"))==null) exit(1);
for (i=1; i< =3; i++)
{
cout< < "vvedite imya: ";
cin> > imya;
cout< < "vvedite familiya: ";
cin> > familiya;
cout< < "vvedite otchestvo: ";
cin> > otchestvo;
cout< < "vvedite telefon: ";
cin> > telefon;
cout< < "vvedite texpasport: ";
cin> > texpasport;
fwrite(& y,sizeof(gor),1,f);
if(ferror(f)! =null)
exit(2);
}
fclose(f);
}
void vivod(char mass[50])
{
file *f;
gor z;
if ((f=fopen(mass, "r"))==null) exit(3);
cout< < "fail: "<
while (! feof(f)) {
fread (& z,sizeof(gor),1,f);
if (! feof(f))
{
cout< < "imya: "<
cout< < "familiya: "<
cout< < "otchestvo: "<
cout< < "telefon: "<
cout< < "texpasport: "<
}
fclose(f);
}
}
void del(char fo[10], char fi[10])
{
file *f1,*f2;
gor d;
//char temp[40];
if ((f1=fopen(fi,"r"))==null) exit(4);
if ((f2=fopen(fo,"w"))==null) exit(5);
//cout < < "vvedite nazvanie na ydalenie - ";
//cin > > temp;
for (int i=0; i< 3; i++)
{
fread(& d,sizeof(gor),1,f1);
if (feof(f1)) break;
if (i> 2)
fwrite (& d,sizeof(gor),1,f2);
}
fclose(f2);
fclose(f1);
}
void dobav(char fi[10], char fo[10],char *imya, char *familiya, char *otchestvo, int telefon, int texpasport)
{
int q;
int i;
gor d;
file *f1,*f2;
char temp[40];
if ((f1=fopen(fi, "r"))==null) exit(4);
if ((f2=fopen(fo,"r+"))==null) exit(5);
cout < < "vvedite familiu, pered kotorym nuzno dobavit element: ";
cin > > temp;
for (i=0; i< 10; i++)
{
fread(& d,sizeof(gor),1,f2);
if (feof(f2)) break;
if (strcmp(d.familiya, temp)) break;
q=i;
}
for (i=0; i< 10; i++)
{
if (feof(f2)) break;
fwrite (& d,sizeof(gor),1,f2);
if (i==q-1)
{
cout< < "vvedite imya: ";
cin> > imya;
cout< < "vvedite familiya: ";
cin> > familiya;
cout< < "vvedite otchestvo: ";
cin> > otchestvo;
cout< < "vvedite telefon: ";
cin> > telefon;
cout< < "vvedite texpasport: ";
cin> > texpasport;
cout <
}
}
fclose(f2);
fclose(f1);
}
void main()
{
int n=10;
//cout < < "vvedite kol-vo zapisey: - ";
//cin> > n;
//cout <
form("f1.txt",n);
vivod("f1.txt");
del("f1.txt","f2.txt");
cout < < "posle udalenia: \n";
vivod("f2.txt");
getch();
n=1;
system("cls");
dobav ("f2.txt","f2.txt");
cout < < "posle dobavlenia: \n";
vivod ("f2.txt");
getch();
}
#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;
}
Писал код сам, тоже по этой задаче С++