C語言程式,為什麼輸出的結果為3,2,0,而不是

2021-03-04 08:48:31 字數 2644 閱讀 9629

1樓:匿名使用者

當x為真時,因為是||號,後面的就不進行判斷了,就不進行計算了。

2樓:暗影水歌

a=++x||++y&&z++就是a=++x或++y和z++

計算從左到右,或左邊為真時,結束運算,即x=2+1,y、z不計算,直接輸出。

結果為3,2,0

3樓:沐夏依晴

因為是||運算,計算了++x,已經為真,後面的內容不計算了,此時x=3,y z不變

請教這段c語言程式輸出結果為什麼是1 0 2 3 沒有6個0?

4樓:自我程式設計

靜態全域性變數初值是0。所以arr初值是0。

最後輸出迴圈是10次,包含10個陣列元素1111000000對於迴圈巢狀邏輯,要是理不清,在原程式迴圈的地方加printf語句把對於的一些變數列印處理會更清晰。比如我下面把原碼新增了printf。

#include

int change(int n,int s,int c)static int arr[10];

void solve(int man,int dis)printf("第%d次i迴圈結束前執行arr[i-1](arr[%d])=temp(等同於a[%d]的值)\n\n",i-2+1,i-1,j-1);

arr[i-1]=temp;}}

int main()

c語言程式,為什麼這道題的輸出結果是2,3 ??我覺得應該是3和乙個隨機數才對啊??

5樓:雙月夜雪

->的優先順序高於++

所以,++p->x 是 ++(p->x)

c語言中的一道題 求程式的輸出結果 為什麼我求出來是1 2 2 呢?而答案是1 2 3 啊

6樓:匿名使用者

你的情況是:來

while(n++<=1)中是先取n值判斷源後再n++,因此第一次n=0判斷有效,n變為1並執行迴圈體;

第二次n=1判斷仍有效,n變為2並執行迴圈體,第三次n=2判斷無效,n++被忽略。

但實踐中由於編譯器的實現不同,可能導致第三次半段無效時n++未被忽略-理論上是不應該忽略的。所以給的答案是1 2 3。

所以問題可能出在你使用的編譯器上。

我用tc2.0編譯器、tcc編譯器和cygwin下的gcc編譯器執行結果均為:1 2 3。

不知道你用的什麼編譯器?

難怪。這主要是編譯器的問題。 我用vc6.

0測試了,如果debug模式沒有問題,release模式有問題,只有1 2。 我估計是release優化出錯。所以檢視了一下,如果以速度優化,則輸出1 2。

預設模式則跟debug一樣。最小尺寸優化也只輸出兩個。自定義優化跟預設模式一樣。

所以問題出在編譯器及project設定上。

所以正確答案應是三個:1 2 3。

7樓:光明左右二使

你忽略了最後一次,n = 2的時候,還是會計算n++ <= 1的,這個時候 因為n > 1,所以沒有進迴圈(在括號處求的值),但是編譯器還是對n++求了一次值,不然,怎麼知道n++ 已經不符合條件了

8樓:匿名使用者

當n=1時(第二次迴圈),1<=1滿足,那麼n加一,然後執行迴圈體

此時n=2,進入n++<=1中,由於2<=1不成立,應該跳出迴圈啦,但n還要加1的,因為n++<=1是乙個語句。此時n=3了。

c語言編寫函式求:1-1/2+1/3-1/4+1/5-1/6+...1/n的值怎麼做?結果是什麼呢?

9樓:幻翼高達

需要準備的材料分別有:電腦、c語言編譯器。

1、首先,開啟c語言編譯器,新建乙個初始.cpp檔案,例如:test.cpp。

2、在test.cpp檔案中,輸入c語言**:。

int n = 100;double s;

for (int i = 1; i <= n; i++)if (i % 2 == 0)

s -= 1.0 / i;

else

s += 1.0 / i;

printf("%lf", s);

3、編譯器執行test.cpp檔案,此時成功輸出了擺動符號多項式的結果。

10樓:匿名使用者

#include

int main()

printf("%f",t);

}我不知道你要哪乙個的答案,我給你些了第二個,好像你的答案不對第乙個上面那位同志寫的沒有什麼問題,我看了一下

11樓:沉冥想

#include

int main()

return 0;}

12樓:匿名使用者

#include"stdio.h"

main()

13樓:ooo孤雁

#include

#include

int main(void)

printf("%f",t);

system("pause");}

C語言有以下程式程式執行後的輸出結果為

一看到這種題目就是讓你看的這個書,不是什麼好書。正經的書不會寫乙個這麼不符合書寫規範的題目。你工作以後寫成這樣會 正規寫法 c語言問題!若有以下程式 輸出結果是?include main int argc,char argv 主函s是程式名,所以不列印.現在dos提示符下鍵入s aa bb cc後字...

c語言讀下列程式,寫出程式的輸出結果

1,1因函式 void swap int a,int b 的第乙個引數a 不是指標,所以 它不會把 函式體內 對 a 的改變 帶回 函式呼叫語句 所在地。而第二個引數b 是指標,所以它能把 交換 結果 帶回來。int a 1,b 2 a,b初值int p b p 指向 bif a printf d,...

c語言閱讀下面的程式,寫出程式執行輸出結果

include int f int x int main for迴圈迴圈3次,依次呼叫三次f 1 而f中的z和y是static靜態變數,只初始化一次,而且在退出函式的時候還會保持它們的值。知道這個就可以走一次迴圈了 比如k 1,即f 1 開始 x 1 z 3,y 0 y z 這行結束後y為1,z為4...