6個回答
-
static int a[8][8];定義為靜態整形變數,因此陣列的預設初始值為 0;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
a[i][j]=2*i+j;
迴圈結束時,i 的值為 3,j 的值也是 3,for(i=0; i<8;i++)
x+=a[i][j] ;
所以這裡 a[i][j] 從第三行的第三行開始(陣列從第 0 列開始)並找到它們的總和。 應該是他們的價值觀沒有改變。 總和自然是 0
-
j 為 3for(i=0; i<3;i++)
for(j=0;j<3;j++) 每次從這裡出來都是 3
a[i][j]=2*i+j;
-
這不是 0 的輸出,但您需要實現什麼?
-
j 是 3,這個程式實際上檢視靜態變數。
當數字或陣列定義為靜態整形變數時,它們的值將初始化為 0。
for(i=0;i<8;i++)
x+=a[i][j] ;
實際上 x=x+(a[0][3] +a[1][3] +a[2][3] +a[3] +a[3] +a[4][3] +a[5][3] +a[6][3] +a[7][3])
因為這些陣列元素的初始值是 0
所以 x=0;
您可以使用以下語句檢視它們的初始值。
#include
int main(){
int i,j,x=0;
static int a[8][8];
for(i=0;i<8;i++)
for(j=0;j<8;j++)
printf("%d ", a[i][j]);
printf("");
-
根據題目要求編寫的程式如下(見圖,圖中重複的地方只需要寫一次)。
-
scanf("%2d%5d",&a,&b);
2D 限制了最大唯讀 2 位數字,因此 A 值為 12,B 讀取到非數字 C 的末尾,B 的值為 3456
其結果是 :12,3456
相關回答