c語言初級問題關於陣列

2022-09-01 10:35:28 字數 1472 閱讀 2570

1樓:額外覆蓋

你陣列定義大小為a[5][5]

但是他的下標是0開始 到4 最大為4

也就是說 你a[i][5]相當於是越界了 理論上是錯誤的 不過你的編譯器沒報錯 但是二維陣列在記憶體中其實是連續的一串記憶體 也就是a[0]五個單位a[1】五個單位類推

2樓:匿名使用者

正確的應當是

#include

void main()

float a[5][5]=,,,,};

float max=0,sum;

int i,j,k;

printf("%f\n",a[4][0]);

for(i=0;i<5;i++)

sum=0;

for(j=1;j<4;j++)

sum=sum+a[i][j];

a[i][4]=sum/3;

for(i=0;i<5;i++)

if(a[i][4]>max)

max=a[i][4];

k=a[i][0];

printf("%d,%f\n",k,max);

printf("%f",a[i][0]);

幾個錯誤:

printf("%d\n",a[4][0]);printf("%d",a[i][0]); 中間d改為f

a[i][5]=sum/3;if(a[i][5]>max)max=a[i][5]; 中間5 全部改為4,開的陣列是0到4

可以單步執行檢驗一下,陣列是從0 開始,切記

3樓:_一蓑煙雨晴

printf("%d\n",a[4][0]);

應該改為printf("%f\n",a[4][0]);

a[i][5]=sum/3;

你的最大錯誤是陣列越界了,你的定義a[5][5];但引用是a[0][0].......a[4][4]

4樓:不信佛的佛手瓜

錯太多了。。

printf("%d\n",a[4][0]); -> printf("%f\n",a[4][0]);    //輸出格式錯誤

a[i][5] -> a[i][4]                     //陣列越界

printf("%d",a[i][0]);               //i=5 陣列越界+輸出格式錯誤

5樓:匿名使用者

#include

main()

,,,,};

float max=0,sum;

int i,j,k,f=0;

printf("%d\n",(int)a[4][0]);

for(i=0;i<5;i++)

}for(i=0;i<5;i++)

if(a[i][4]>max)

printf("%d,%f\n",k,max);

printf("%d",(int)a[f][0]);}

C語言陣列問題,c語言陣列宣告問題

for i 1 i 10 i break 要求按已排好的順序規律將它插入到陣列中.這段改為 for i 1 i 10 i a i 1 m break 你確定是從大到小排列嗎?我怎麼感覺你的程式是從小到大排列的啊。include void main 從鍵盤接收10個數。for j 1 j 10 j f...

C語言的問題,指標陣列,c語言指標陣列

改變不了,字串常量是改不了的,你可以試試char p aaaaa p 1 b 這樣是改不了的 只能定義二維陣列才可以改 char p 3 100 這樣才可以改,不要問為什麼,字串常量就是不能改 直接讓指標指向另一個字串即可 p 0 aaaa 這樣定義指標指向的字串是無法修改的。c語言指標陣列 p是i...

C語言陣列問題

void out set unsigned char bit id,bit value if value else 呼叫的時候就是這樣 out set 22,1 置位 out set 22,0 置0 無頭無尾的,怎麼給你解釋?這個不是陣列的問題,應該是關於位運算的問題 bn表示第幾個位元組 msk就...