Вывести элементы матрицы, записанной в файле, на экран змейкой - C (СИ)
Формулировка задачи:
дан двумерный массив. вывести на экран его элементы, сначала элементы первой строки справа налево, затем второй строки с права налево и т.п.
Решение задачи: «Вывести элементы матрицы, записанной в файле, на экран змейкой»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
#define MAX_SIZE 10
int main(void)
{
setlocale(LC_ALL, "Rus");
printf ("Введите высоту массива: ");
int hight;// Высота >> Строки
scanf ("%d", &hight);
printf ("Введите ширину массива: ");
int weight;// Ширина >> Столбцы
scanf ("%d", &weight);
int i, j, n = 0;// n - заполняет ячейки с шагом +1 с каждым входом в цикл
int arr[MAX_SIZE][MAX_SIZE];// MAX_SIZE - если ставить больше, то %2d менять на %3d
printf("\nЗаполение массива из файла и вывод:\n\n");
FILE * base = fopen("base.txt","r");
if(!base) printf("Файл не найден!\n");
else{
for( i = 0; i < hight; i++){
for( j = 0; j < weight; j++, n++){
fscanf(base, "%d", &arr[i][j]);
printf(" %2d", arr[i][j]);
}
printf("\n");
}
fclose(base);
printf("\nВывод массива змейкой:\n");
for( i = 0; i < hight; i++){
if(i%2==0){
for( j = 0; j < weight; j++) printf(" %2d", arr[i][j]);
}
if(i%2==1){
for( j = weight-1; j > EOF; j--) printf(" %2d", arr[i][j]);
}
printf("\n");
}
}
return 0;
}
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы с файлами и вводом-выводом.
- Объявление константы, определяющей максимальный размер матрицы.
- Ввод высоты и ширины матрицы с помощью функции scanf().
- Объявление переменных i, j, n, которые будут использоваться в программе.
- Создание двумерного массива arr[MAX_SIZE][MAX_SIZE] для хранения данных из файла.
- Открытие файла
base.txtс помощью функции fopen() для чтения данных. - Проверка на успешное открытие файла, если файл не найден, выводится сообщение об ошибке.
- Заполнение матрицы данными из файла с помощью цикла for и функции fscanf().
- Вывод заполненной матрицы на экран с помощью цикла for и функции printf().
- Вывод матрицы змейкой с помощью двух вложенных циклов for и функции printf().