Не получается сделать корректный ввод данных двумерного массива - 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, чтобы избежать возможных ошибок ввода.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.833 из 5
Похожие ответы