C語言為什麼這個程式輸出是這個結果(陣列問題)

時間 2022-06-08 14:50:03

1樓:匿名使用者

第1次迴圈,i=0,a[i]='a',所以執行i1++,此時i1=1;

第2次迴圈,i=1,a[i]='b',所以執行i2++,此時i2=1;

第3次迴圈,i=2,a[i]='c',不執行i1++或者i2++;

第4次迴圈,i=3,a[i]='d',不執行i1++或者i2++;

第5次迴圈,i=4,a[i]='a',不執行i1++或者i2++;

第6次迴圈,i=5,a[i]='b',所以執行i2++,此時i2=2;

第7次迴圈,i=6,a[i]='c',不執行i1++或者i2++;

第8次迴圈,i=7,a[i]='a',不執行i1++或者i2++;

第9次迴圈,i=8,a[i]='b',不執行i1++或者i2++;

第10次迴圈,i=9,a[i]='f',不執行i1++或者i2++;

第11次迴圈,i=10,a[i]='g',不執行i1++或者i2++;

第12次迴圈,i=11,a[i]='a',所以執行i1++,此時i1=2;

第13次迴圈,i=12,a[i]='c',不執行i1++或者i2++;

第14次迴圈,i=13,a[i]='d',不執行i1++或者i2++;

之後i=14,a[i]='\0',結束迴圈。i1=2,i2=2。

2樓:

這個程式就是統計abcdabcabfgacd這串字元中小寫a和小寫b的個數,輸出2,2結果很正常啊,我不知道你的問題的初衷是什麼?

3樓:匿名使用者

你這樣寫while迴圈裡的兩個if語句是順序執行的,應該把第二個if前加個else應該就可以了!這樣寫不能達到選擇執行的目的,所以是這樣的結果。

if 條件

else if 條件

else 條件

這樣的結構才能實現選擇,試試看吧!

看這個c語言程式。為什麼輸出的都是

你這個程式寫的很亂,首先各個變數沒有定義型別,n,m,sum r i 其次pow要用到include 演算法也不清楚你到底想幹什麼,另外scanf c n eof 這個是錯誤的。eof只有在讀檔案的時候這麼寫。 金色潛鳥 是否漏了標頭檔案 include 你的 pow 2,i 需要 math.hn ...

C語言為什麼這個程式執行沒有輸出的結果?與結構體陣列有關

十四行 struct student p stu 中間加個student 二十九行 if strcmp stu i major,t 0 因為是字串,所以要用雙引號,而不是單引號。三十二行 else if strcmp stu i major,w 0 同理 三十五行 else if strcmp st...

c語言,這個程式是怎麼執行的??輸出的數字是怎麼來的

王勃啊 你不要管3221216112這個數字 它顯示出來只是希望告訴你差值 3221216112 和 3221216128 的差值的一定的。因為 3221216112 指向的是a的首地址 而3221216128 指向的是a 4 的地址,他們相差 4 4 16個地址。至於3221216128 是怎麼來...