Сформировать массив, в котором каждому элементу будет присвоено значение следующего за ним - C (СИ)
Формулировка задачи:
В файле задан массив из девяти элементов. В новом файле сформировать массив, в котором каждому элементу будет присвоено значение следующего за ним (соседнего справа). Последнему элементу присвоить значение первого
Решение задачи: «Сформировать массив, в котором каждому элементу будет присвоено значение следующего за ним»
textual
Листинг программы
FILE *in = fopen("1", "r");
FILE *out = fopen("2", "w");
int i, numbers[9];
for(i=0;i!=9;++i) fscanf(in, "%d", &numbers[i]);
for(i=1;i!=10;++i) fprintf(out, "%d ", numbers[(i%9)]);
fclose(in);
fclose(out);
Объяснение кода листинга программы
- Мы открываем файл для чтения (в режиме
r) с помощью функции fopen и сохраняем его указатель в переменной типа FILE в переменнойin. - Мы открываем файл для записи (в режиме
w) с помощью функции fopen и сохраняем его указатель в переменной типа FILE в переменнойout. - Мы объявляем массив типа int с 9 элементами и инициализируем его нулями. Массив называется
numbers. - Мы считываем 9 целых чисел из файла, используя функцию fscanf и записываем их в элементы массива
numbers. - Мы записываем числа из массива
numbersв файл, используя функцию fprintf. Мы начинаем с 1-го элемента массива и записываем числа до тех пор, пока не достигнем 10-го элемента массива. Каждое число записывается вместе со пробелом в конце. - Мы закрываем файл
inс помощью функции fclose. - Мы закрываем файл
outс помощью функции fclose.