Как вводить двухмерный массив? - 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();
}

Объяснение кода листинга программы

Вывод списка элементов:

  1. Объявлены необходимые переменные для работы с массивом:
    • int **mas - указатель на указатель на целочисленный массив (двумерный массив);
    • i, j, n, m - целочисленные переменные для цикла;
    • s - переменная для хранения суммы элементов массива (будет использоваться в других задачах);
    • printf(Введите n: );, scanf(%d,&n); и printf(Введите m: );, scanf(%d,&m); - используются для ввода размеров массива.
  2. Выделена память под двумерный массив с помощью calloc(n,sizeof(int*)); и calloc(m,sizeof(int));.
  3. Происходит ввод элементов массива с помощью scanf(%d,&mas[i][j]);.
  4. Происходит вывод элементов массива с помощью printf(%5d,mas[i][j]);.
  5. В конце программы вызывается функция getch(), которая ожидает нажатия клавиши для завершения работы программы.

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

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