我試圖使用for
循環將浮點值賦值爲二維數組。已被宣佈爲float num[4][7];
ANSI C - 二維數組
這是我到目前爲止的代碼:
float num[4][7];
int x;
for(x=0;x<=3;x++) {
printf("Enter number: %d",x);
scanf("%f",cad[x][x]);
}
return 0;
但好像它不能正常工作,它沒有做什麼,我之前解釋..
任何幫助將不勝感激, 謝謝!
我試圖使用for
循環將浮點值賦值爲二維數組。已被宣佈爲float num[4][7];
ANSI C - 二維數組
這是我到目前爲止的代碼:
float num[4][7];
int x;
for(x=0;x<=3;x++) {
printf("Enter number: %d",x);
scanf("%f",cad[x][x]);
}
return 0;
但好像它不能正常工作,它沒有做什麼,我之前解釋..
任何幫助將不勝感激, 謝謝!
scanf("%f",cad[x][x]);
使用代替:
scanf("%f", &cad[x][x]);
在scanf
的參數爲%f
轉換規格必須是一個指針float
。您正在使用類型爲float
的參數。
三個問題,第一,正如已經提到的,使用scanf()當你需要給它一個指針,它是怎麼回事更新:
// v-----added that
scanf("%f",&cad[x][x]);
第二你初始化所謂的「民」的數組,但你填充一個名爲「cad」的數組。所以改變其中之一,名稱必須匹配。
最後,你的循環只會填充共28個元素的4:
//This
float num[4][7];
for(x=0;x<=3;x++) {
scanf("%f",&num[x][x]);
//Will give you:
[%f][ ][ ][ ]
[ ][%f][ ][ ]
[ ][ ][%f][ ]
[ ][ ][ ][%f]
[ ][ ][ ][ ]
[ ][ ][ ][ ]
[ ][ ][ ][ ]
顯然,在這個例子中%f
的由任何取代你在輸入要填充你需要有全陣列式兩個for循環,x<=3
(用於列)和y<=6
(對於行)
float num[4][7];
int x;
int y;
for(x=0;x<=3;x++) {
for(y=0; y<=6; y++) {
printf("Enter number: [%d][%d]",x,y);
scanf("%f",num[x][y]);
}
}
編譯與'-Wall'代碼(顯示所有警告);編譯器通常會遇到這樣的錯誤。 – nibot
什麼是CAD?當你想讀入'num'時,你爲什麼要讀'cad'? – AnT
仍然懷疑爲什麼使用'[x] [x]'? –