Как вводить двухмерный массив? - C (СИ)
Формулировка задачи:
Собственно: как его вводить? Предположил что так (но ничего не вышло, разумеется):
#include <stdio.h> #include <stdlib.h> int main () { const int ni, nj; int i, j; printf("Vvedite kolichestvo strok\n"); scanf("%d",&ni); printf("Vvedite kolichestvo stolbzov\n"); scanf("%d",&nj); int A[ni][nj]; for (i=0; i<ni; i++){ printf("Vvedite elementi stroki %d\n", i+1); for (j=0; j<nj; j++){ scanf("%f",&A[i][j];} } }
Решение задачи: «Как вводить двухмерный массив?»
textual
Листинг программы
#include <stdio.h> #include <clocale> #include <conio.h> #include <stdlib.h> void main() { setlocale(LC_ALL, "Rus"); int **mas, i, j, n, m; float s=0; printf("Введите n: "); scanf("%d",&n); printf("Введите m: "); scanf("%d",&m); mas=(int**)calloc(n,sizeof(int*)); for(i=0;i<n;i++) mas[i]=(int*)calloc(m,sizeof(int)); for(i=0;i<n;i++) for(j=0;j<m;j++) { printf("Введите элемент a[%d][%d] = ",i+1,j+1); scanf("%d",&mas[i][j]); } for(i=0;i<n;i++) { printf("\n"); for(j=0;j<m;j++) printf("%5d",mas[i][j]); } getch(); }
Объяснение кода листинга программы
Вывод списка элементов:
- Объявлены необходимые переменные для работы с массивом:
int **mas
- указатель на указатель на целочисленный массив (двумерный массив);i
,j
,n
,m
- целочисленные переменные для цикла;s
- переменная для хранения суммы элементов массива (будет использоваться в других задачах);printf(
Введите n:);
,scanf(
%d,&n);
иprintf(
Введите m:);
,scanf(
%d,&m);
- используются для ввода размеров массива.
- Выделена память под двумерный массив с помощью
calloc(n,sizeof(int*));
иcalloc(m,sizeof(int));
. - Происходит ввод элементов массива с помощью
scanf(
%d,&mas[i][j]);
. - Происходит вывод элементов массива с помощью
printf(
%5d,mas[i][j]);
. - В конце программы вызывается функция
getch()
, которая ожидает нажатия клавиши для завершения работы программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д