關於C語言的問題

時間 2021-10-15 00:24:30

1樓:匿名使用者

這是一個很簡單的問題,但同時這個程式又很不可靠,這個後面講,給你講結果怎麼得出來的:

for(i=1;i<=3;i++)

a[i]=0;

對陣列初始化,這個你應該懂吧,就是把a[1]到a[3]全部初始化為0。

scanf("%d",&x);這句不講了。

主要講這裡

while(x!=-1)

這段就是當x不等於-1的時候執行while裡面的兩句,有點廢話,舉個例子,第一個輸入的資料是3,那麼根據while前面的那句scanf x就等於3,那麼a[x]+=1就是a[3]+=1,因為之前全部初始化為0,所以此時a[3]=1,然後再次scanf給x賦值,第二個資料是1,那麼就是a[1]+=1,

a[1]=1,當輸入的資料x再次為3的時候又一個a[3]+=1,因為之前a[3]=1了,所以此時a[3]=2,所有資料同理。你數數輸入的那串資料是不是一共有9個3?所以最後a[3]=9。

當x不等於-1的時候一直重複上述迴圈。

出這個題的人很白痴,假如我輸入x=6那麼陣列a就越界,所以說這個程式很不可靠。

你問這個題做什麼我也不知道。。。。因為你給的那個題除了你自己寫的問號就一個問號也沒有了,沒有問號的叫題嗎?感覺你只給了已知條件。

2樓:

#include

main ( )

for(i=1;i<=3;i++)

printf("a[%2d]=%4d\n",i,a/*這裡也是a[i]吧*/);}

關於c語言的問題,關於C語言的問題

鷹弈 1 有定義 int n 0,p n,q p 則以下選項中,正確的賦值語句是 d a.p 1 b.q 2 c.q p d.p 5 解 p為一級指標,其中p為指標的地址,q為二級指標,其中 q為指標的地址,只能給變數或指標變數賦值,不能給地址賦值,所謂地址,就是由acs碼構成,簡單的說,就是每個人...

關於c語言的問題,一個關於c語言的問題

彬彬有禮 對於你的疑問,我一個一個幫你解決 1.因為5 9 代表整除取商,即結果為0 而 5.0 9 代表5除以9,即結果為0.555556 所以兩者結果完全不一樣。再比如 3 2 1,而3.0 2 1.5 2.double b 2這是對的,沒有必要寫成double b 2.0,因為系統會自動幫你轉...

關於c語言的程式設計,關於C語言的程式設計問題?

執行示例 原始碼如下 include stdio.h int main printf n return 0 望採納。int用來定義整型變數 整數 float用來定義浮點型變數 實數 float和int一樣是用來定義變數的,它不是函式.賦值語句value 700 weight 14.5833之所以不在...