這道C語言的答案為什麼是這樣,看一道C語言程式答案,為什麼會這樣?

2021-07-30 12:53:44 字數 2581 閱讀 3383

1樓:匿名使用者

1、“能整除形參x且不是偶數的各整數” 是說求“各整數”。這個“各整數”滿足兩個特徵:“能整除形參x”, “不是偶數”,這兩個特徵寫成**就是:((x%i==0)&&(i%2))

2、“這些除數的個數通過形參n返回”, 是通過形參返回,而不是返回值返回。如果用return就 是函式的返回值。形參是n,兩條語句“

*n=0;" 和 ”(*n)++“ 即為將形參n指向的int型變數賦值為“這些除數的個數”。

2樓:

1.你寫錯了。是i%2不是i&2。%是取餘除,所以i%2不為0就說明i不能被2整除,不能被2整除的整數肯定不是偶數,這不剛好符合要求嗎?

2.你把“返回”理解得太狹隘了,n是指標,當然會在fun返回時“帶回來”被fun改變了的值。函式返回一個值,不一定一定要用函式返回,用指標和全域性變數都能完成。

當然你把fun定義成有返回值的函式int fun(),最後用一句return *n也能行。

3樓:匿名使用者

1、題目說 能整除形參x且不是偶數的各整數,不是x不是偶數,而是所求的數i要求不是偶數。能整除形參x的條件是(x%i==0)而i不是偶數的條件是(i%2),兩者都要成立,則寫成if((x%i==0)&&(i%2));

2、n是通過指標方法傳到函式中來,在函式內已對n作修改

4樓:伯度空間

1.i%2為奇數時才為true

2.指標操作時是址傳遞。

》我要問的是:找出的數能被x整除,而且不偶數,那為什麼不能寫成if((x%i==0)&&(i%2!=0))?

效果應該是一樣的。

5樓:賴福平

i%2得到的結果非0為1,0則為0.

給形參而不是返回值,給形參是把得到的結果賦值給形參。和返回值不同,返回值是函式執行之後返回的結果。

看一道c語言程式答案,為什麼會這樣?

6樓:匿名使用者

a bc1=a,c2= ,c3=bpress any key to continue

這是在我機器上的執行結果vc 6.0

scanf("%c"),是一個一個字元的讀的,包括空格和回車.

7樓:

輸出是c1=a,c2=b,c3=a ??

那就看不明白了。。

要是想輸入a,b。。中間不是空格,是回車

8樓:

scanf函式輸入多個字元就是以空格作為字元間隔,表示一個字元輸入結束,開始輸入下一個字元,所以實際上你只輸入了兩個字元.a和b.

而c3你沒有輸入任何字元,所以應該不會顯示c3=a,所以你這個應該不是正確答案.

9樓:匿名使用者

這裡讀取的是字元型的資料,不指定scanf的分隔符的話會把空格也讀取,輸出應該是c1=a.c2= ,c3=b

10樓:飛龍在天

輸入格式是在函式scanf("%c%c%c",&c1,&c2,&c3); 確定的,在輸入的時候要跟scanf裡的格式一致,這裡在%c之間加空格應該就可以的

11樓:高速路上飆單車

你%c之間用個空格

12樓:匿名使用者

書上的結果是對的,建議你換個編譯器

13樓:匿名使用者

可能你定義位字元,而“空格”也是字元,所以就成那樣了,即使輸入a b c好像也不對

求解一道c語言題。答案為什麼這麼寫?

14樓:匿名使用者

第1堆是a[0],第2堆是a[1],第3堆是a[2]。

這裡說明一下(i+1)%3。表示用(i+1)/3取餘數。當i=2時,i+1=3,3/3餘數為0,則(i+1)%3=0。

程式的思想是倒推。首先第一個for迴圈第一條語句執行,此時i=2。 a[(i+1)%3]表示a[0]。

a[0]/=2就是把自己本身/2,這樣第1堆火柴恢復到第3堆火柴給它火柴之前的狀態。然後a[i]+=a[(i+1)%3];這樣第3堆火柴剛剛分出去的火柴也加回來了。

然後迴圈第二遍,此時i=1。a[(i+1)%3]表示a[2]。分析思路相同……

最後陣列a中存的火柴恢復了初始狀態,迴圈輸出一遍完事。

15樓:匿名使用者

就是把過程倒過來啊

第一堆減半,加到第三堆

第三堆減半,加給第二堆

第二堆減半,加給第一堆

這道c語言程式設計選擇題答案為什麼是a?

16樓:匿名使用者

什麼是程式設計 話就從一個著名的公式說起

17樓:岔路程式緣

x+a%3*(int)(x+y)%2/4

=2.5+7%3*(int)(2.5+4.7)%2/4=2.5+1*(int)(7.2)%2/4=2.5+7%2/4

=2.5+1/4

=2.5+0

=2.6

看一道C語言程式答案,為什麼會這樣

a bc1 a,c2 c3 bpress any key to continue 這是在我機器上的執行結果vc 6.0 scanf c 是一個一個字元的讀的,包括空格和回車.輸出是c1 a,c2 b,c3 a 那就看不明白了。要是想輸入a,b。中間不是空格,是回車 scanf函式輸入多個字元就是以空...

這道c語言題為什麼選B,C語言為什麼這道題a不對要選b答案

這是正確的,因為根據顯示條件,當i是偶數時輸出顯示大寫,奇數時輸出顯示小寫。注意i 2的運算結果就是奇數為1,偶數為0.a.bf a是說整體最少的位數,包括小數點,不夠的用空格補b是說小數點後最多的位數 6.2f 保留到小數點後2兩位,所以選b 選a好吧 scanf不能精度控制是非法的 c語言為什麼...

c語言問題如圖為什麼ab錯?正確答案是

a hello 是字串,不能存在int陣列裡 b a 5 說明最多存5個數,0 5是6個數溢位 a錯在 string 有7個位元組 而定義char 6 只有6個位元組空間 在編譯的時候,c對這個限制不高 頂多報一個警告 不會報錯誤的。這種越界,在c中是要靠自己把握的。就像char s 2 asdfa...