Не получается сделать корректный ввод данных двумерного массива - C (СИ)
Формулировка задачи:
Суть такова: Заполняется двумерный массив, но когда прошу вывести то, что ввёл, то мне выводится матрица, состоящая из последнего введённого элемента массива. Где ошибка? Закоментированный код для дальнейшей работы.
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
int main()
{
setlocale (LC_CTYPE,"RUSSIAN");
printf("\n\t\t задание\n\n");
printf ("\t Программа: 1. Возвращает количество строк, не содержащих\n"
"\t ни одного нулевого элемента.\n"
"\t 2. Возвращает максимальное из чисел, \n"
"\t в заданной матрице более одного раза.\n");
int n; // Количество строк
int m; // Количество столбцов
for (;;)
{
printf ("\n\t Задайте количество строк (n<=10): ");
scanf ("%d",&n);
printf ("\n\t Задайте количество столбцов (m<=10): ");
scanf ("%d",&m);
if ((n<=10)&&(m<=10)) {break;}
else {printf ("\n\t Не соблюдены условия: n<=10 и m<10. Повторите ввод.\n\n");}}
int a[10][10],i,j,T=0; // Объявляем двумерный массив и счётчики
int ist[10]; // Массив на проверку условия 1
// for (i=0;i<n;i++) {ist[i]=0; printf ("%d",ist[i]);}
printf (" Заполняем массив:\n\n");
for (i=0; i<n; i++)
{
for (j=0; j<m; j++)
{
printf ("[%d][%d]",i+1,j+1); scanf ("%d",&a[n][m]);
}printf( "\n" );}
/*printf( "\n %d \n",a[1][2] );
for (i=0; i<n; i++)
{
for (j=0; j<m; j++)
{ if (arr[n][m]==0) {ist[n]=1;}}} */
for (i=0;i<n;i++)
{
for (j=0;j<m;j++)
printf ("%d",a[n][m]);
printf ("\n");
}
// for (i=0;i<n;i++) {if (ist[i]=0) {T++;} printf ("%d",T);}
// printf ("\n Задание 1: %d \n",T);
return 0;
}Решение задачи: «Не получается сделать корректный ввод данных двумерного массива»
textual
Листинг программы
printf ("%d",a[i][j]);
Объяснение кода листинга программы
В данном коде происходит попытка вывода значения элемента двумерного массива a с индексами i и j на экран. Однако, судя по всему, ввод данных для этого массива реализован неправильно, и поэтому программа не работает корректно. Возможно, проблема заключается в том, что ввод данных для двумерного массива должен быть осуществлен в цикле, который проходит по всем элементам массива. Кроме того, для корректного ввода данных необходимо использовать функцию scanf или fgets, чтобы избежать возможных ошибок ввода.