Заполнение квадратной матрицы - C (СИ)
Формулировка задачи:
Добрый день. Изучаю азы программирования, преподаватель попросил сделать так, чтобы пользователем вводилась квадратная матрица, при этом размер матрицы не задается в начале программы или пользователем. Происходит считывание количества элементов(csv-формат), выходит, из этого и создается размерность, но как?
Если у кого-то есть пример такого кода, то было бы еще лучше, я бы разобрался
К примеру:
Введите матрицу
1; 2; 3;
4; 5; 6;
7; 8; 9;
Вы ввели матрицу 3x3:
1; 2; 3;
4; 5; 6;
7; 8; 9;
Решение задачи: «Заполнение квадратной матрицы»
textual
Листинг программы
#include<stdio.h>
#define N 100
int main(void)
{
int ar[N][N],n=0,i,j;
printf("Enter matrix\n");
do
{
scanf("%d%*c",&ar[0][n++]);
}while(getchar()!='\n');
for(i=1;i<n;i++)
for(j=0;j<n;j++)
scanf("%d%*c",&ar[i][j]);
printf("You entered matrix %dx%d:\n",n,n);
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
printf("%d; ",ar[i][j]);
printf("\n");
}
return 0;
}
Объяснение кода листинга программы
В этом коде:
- Объявляется переменная
Nс значением 100, которая будет использоваться для определения размера матрицы. - Объявляется переменная
arтипаintразмеромNнаN, которая будет использоваться для хранения элементов матрицы. - В цикле
do-whileпользователю предлагается ввести элемент матрицы. Это продолжается до тех пор, пока не будет введен символ новой строки (\n). - Затем в цикле
forпроисходит ввод остальных элементов матрицы. - Выводится сообщение с размером матрицы и затем сама матрица.
- В цикле
forпроисходит вывод элементов матрицы построчно. - Возвращается 0, чтобы указать, что программа успешно завершилась.