意図した結果は、入力したのと同じ値を出力しますが、出力は最初の行の後にゼロになります。関数に配列を渡すと値が変更されますか?
#include<stdio.h>
void display(int *q, int);
int main() {
int i,j,n;
int d[50][50];
printf("Input the order\t");
scanf("%d", &n);
for (i=0;i<=(n-1);i++) {
for (j=0;j<=(n-1);j++) {
scanf("%d", &d[i][j]);
}
}
display (d, n);
}
void display (int *q, int r) {
int i,j;
for (i=0;i<r;i++) {
for (j=0;j<r;j++) {
printf("%d\t", *(q + i*r + j));
}
printf("\n");
}
}
コンパイラは 'display'に渡した後に' d'の寸法を知りません。 – goodvibration
多次元配列をCの関数に渡す方法を検索します。たとえば、[this post](http://stackoverflow.com/q/16943909/478288)を参照してください。 – chrisaycock