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