Создать два бинарных файла - из четных и нечетных элементов исходного соответственно - C (СИ)
Формулировка задачи:
1.(бинарный)
Создать бинарный файл с числам(вводить с клавиатуры). Затем создать два других бинарных файла, в один пойдут четные числа из исходного файла, в другой нечетные.
2.(текстовой)
Матрица действительных чисел размерностью м х n хранится в текстовом файле по строкам. Первая запись файла-величины м и n. Сформировать матрицу 3 х n , каждый элемент которой содержит три наибольших по модулю элемента соответствующего столбца исходной матрицы и записать ее в текстовый файл.
Зарание спасибо.
Решение задачи: «Создать два бинарных файла - из четных и нечетных элементов исходного соответственно»
textual
Листинг программы
#include<stdio.h> #include<math.h> #include<iostream> int main(void) { FILE *f1,*f2; int m,n,i,j,max1,max2,max3,pos1,pos2,a[100][100]; f1 = fopen("input.txt","r"); f2 = fopen("output.txt","w+"); fscanf(f1,"%d %d",&m,&n); for(i=0;i<m;i++) for(j=0;j<n;j++) { fscanf(f1,"%d",&a[i][j]); } for(i=0;i<n;i++) { max1 = abs(a[0][i]); max2 = abs(a[0][i]); max3 = abs(a[0][i]); for(j=1;j<m;j++) if(abs(a[j][i])>max1) { max1 = a[j][i]; pos1 = j; } for(j=1;j<m;j++) if(abs(a[j][i])>max2 && j!=pos1) { max2 = a[j][i]; pos2 = j; } for(j=1;j<m;j++) if(abs(a[j][i])>max3 && j!=pos1 && j!=pos2) { max3 = a[j][i]; } fprintf(f2,"%d %d %d\n",max1,max2,max3); } fclose(f1); fclose(f2); }
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы с файлами и математическими операциями
- Объявление переменных:
- f1, f2 - указатели на файлы
- m, n - количество строк и столбцов матрицы соответственно
- i, j - индексы для обхода матрицы
- max1, max2, max3 - для хранения максимальных значений на текущей строке
- pos1, pos2 - позиции найденных максимальных значений
- a[100][100] - матрица для хранения данных из файла
- Открытие файлов input.txt и output.txt для чтения и записи соответственно
- Чтение первых двух чисел из файла (m и n)
- Обход матрицы и чтение всех чисел в нее
- Поиск максимального значения на каждой строке и запись его в max1
- Если найдено значение, которое больше max1, то оно записывается в max1, а позиция этого значения в массиве в pos1
- То же самое для max2, но с проверкой на равенство позиции значения pos1
- То же самое для max3, но с проверкой на равенство позиций значений pos1 и pos2
- Запись найденных максимальных значений в файл output.txt
- Закрытие файлов Вывод: Данный код занимается чтением данных из файла input.txt и записью в файл output.txt двух максимальных значений и их позиций на каждой строке матрицы. Сначала инициализируются переменные для хранения максимальных значений и их позиций. Затем происходит обход матрицы построчно, где на каждой строке ищутся максимальные значения. Если найдено новое максимальное значение, оно записывается в переменные max1, max2 или max3, а также в соответствующую переменную pos1, pos2 или pos3. После обхода всех строк, найденные максимальные значения и их позиции записываются в файл output.txt. В конце файлы закрываются.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д