
題目是要求有輸入格式的
能不能用scanf一次讀入一行呢?
比如
int a[][4] = { 0 };
scanf("%d", &columnum);
for ( int i = 0; i < columnum; i++)
{
scanf("%d %d %d %d", &a[i][0], &a[i][1], &a[i][2], &a[i][3]);
}
編譯可以通過但是輸入完之后一直提示說
警告 C6385 從“a”中讀取的資料無效: 可讀大小為“16”個位元組,但可能讀取了“64”個位元組。
請問是哪里的問題呢?
是只能用兩個回圈寫入陣列值嗎
uj5u.com熱心網友回復:
定義成a[4][4]就會好uj5u.com熱心網友回復:
int a[][4] = { 0 };改成 int a[4][4] = { 0 };另外,你這里n=4只是個例子,根據題目要求,n可以到100,所以最好把陣列定義為a[100][100]
for example
int main ()
{
int n,i,j,row,col,a[100][100];
scanf("%d", &n); //輸入行數
for (i=0; i<n; i++) { //輸入矩陣資料
for (j=0; j<n; j++) {
scanf("%d", &a[i][j]);
}
}
for (i=0; i<n; i++) { //遍歷每行
for (col=0,j=1; j<n; j++) { //找出每行的最大數所在的列
if (a[i][col]<a[i][j])
col=j;
}
for (row=0,j=1; j<n; j++) { //找出每行最大數所在的列的最小數所在的行
if (a[row][col]>a[j][col])
row=j;
}
if (row==i) //如果最小數所在的行剛好是當前行,則輸出結果
printf("%d %d\n", row, col);
}
return 0;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/58143.html
標籤:新手樂園
下一篇:求大佬幫忙
