функция и массив в программе на c с использованием указателя

#c #dev-c

#c #dev-c

Вопрос:

у меня есть программный код, но вывод правильный.

вывод должен :

 1 2
3 4
 

входные данные :

 1 2 3 4
 

это мой код:

 #include<stdio.h>
#define size 100

int array2d(int *x[size][size],int a,int b){
    int i,j;
    for(i=0;i<a;i  ){
        for(j=0;j<b;j  ){
            printf("%d ", x[i][j]); x[i][j]  ;
        }
        printf("n");
    }
}
int main(){
    int a,b;
    int x[size][size];
    
    printf("enter the size of array (row) amp; (column) : ");
    scanf("%d %d",amp;a,amp;b);
    
    printf("enter the number : ");
    scanf("%d",amp;x[size][size]);
    
    array2d(x,a,b);
    
    return 0;
}
 

мой код, показывающий вывод :

 0 0
0 0
 

что я должен сделать, чтобы это исправить? и, может быть, кто-нибудь хочет помочь мне исправить это.

Ответ №1:

Вы неправильно считываете элементы с консоли. Способ чтения входных данных неверен.

 #include <stdio.h>
#define size 100

int array2d(int x[size][size], int a, int b)
{
    int i, j;
    for (i = 0; i < a; i  )
    {
        for (j = 0; j < b; j  )
        {
            printf("%d ", x[i][j]);
        }
        printf("n");
    }
}
int main()
{
    int a, b;
    int x[size][size];

    printf("enter the size of array (row) amp; (column) : ");
    scanf("%d %d", amp;a, amp;b);

    printf("enter the number : ");

    for (int i = 0; i < a; i  ) //reading input
    {
        for (int j = 0; j < b; j  )
        {
            scanf("%d", amp;x[i][j]);
        }
    }

    array2d(x, a, b);

    return 0;
}
 

Вывод :

 enter the size of array (row) amp; (column) : 2 2
enter the number : 1 2 3 4
1 2 
3 4
 

Комментарии:

1. что я должен сделать, чтобы ввести туда указатель? @Krishna