1樓:匿名使用者
其實明白以下的,以後這樣的問題就能解決
++a ,--a是在使用a之前,先把a加(減)1a++,--a是在使用a之後,把a的值加(減)1a=1時 ,b=a++意思是把取得a的值,即b=1,之後a在加1,a變成了2
a=1時,b=++意思是先使a加1,a變成了2,之後再取a,b就等於2了。
b=a++,b=++a意思都是取a的值關鍵是在a加1之前取的還是之後不管怎麼的a都加1了
main()
2樓:蝶破焰澈
首先在執行x=(--a)-(--b);這語句之前,做a,b自減,a=39,b=19,然後執行y=(a--)-(b--);語句,之後a,b自減,a=38,b=18.所以a,b列印出來的值就是38,18;a+1=39,b-1=17;執行這個語句printf("%d,%d\n",a++,b--); 的時候,a=38,b=18,執行之後再執行a自加,b自減,這時候a=39,b=17,然後執行下乙個語句,a=40,b=16.接著執行printf("%d,%d\n",+a++,-b--);是先列印然後a自加,b自減,所以列印出的a=40,b=-16.
而x,y在開始的時候就是x=39-19,y=40-20.
這題目考你的是,a++,++a的區別,a++是先使用a的值,然後執行a=a+1,++a是先執行a=a+1,然後使用a的值。
3樓:匿名使用者
main()
4樓:匿名使用者
第乙個 a=38 b=18
因為 x=(--a)-(--b) 就是a使用前執行了a=a-1也就是a=39 同理b=19
所以x=20 得出x
再看 y=(a--)-(b--); a使用之後執行a=a-1得出y=39-19=20 之後 a=a-1=38 b=19-1=18所以第乙個是38 18
第二個a+1=38+1=39 b-1=18-1=17 注意這裡 執行a+1後a的值沒變還是38 同理b
第三個a=38 執行完了之後a=a+1 b=b-1 也就是39 17第三個結果是38 18
第四個結果是40 16 因為++a 是先執行a=a+1 也就是39+1=40 同理b
第五個40 -16 +只是表示取正數 -是取負數第六和第7個是列印出x,y的值 也就是20 20
5樓:陸竹軒
main()
我的執行結果:
38,18
39,17
38,18
40,16
40,-16
2020
press any key to continue就注意一點,字首先自加自減後再參與運算
字尾先參與運算,再進行自加自減
6樓:匿名使用者
兄弟耐點心,可以自己理清的。
a++用好後自加,++a自加後再用a.
7樓:匿名使用者
初值a=40 b=20
x=(--a)-(--b); x=39-19=20
y=(a--)-(b--); y=39-19=20 與此同時 a=38 b=18
printf("%d,%d\n",a,b); 38 18
printf("%d,%d\n",a+1,b-1); 39 17
printf("%d,%d\n",a++,b--); 39 17 於此同時a=40 b=16
printf("%d,%d\n",++a,--b); 41 15 此時a=41 b=16
printf("%d,%d\n",+a++,-b--); 41 -16 此時 a=42 b=15
printf("%d\n",x); 20
printf("%d\n",y); 20
只需要知道前置++事先執行+1 再使用它的值 後置++就是先使用它的值 再進行自加操作
個人意見 僅供參考
幫我看c語言程式,幫我看乙個c語言程式
因為你第一次輸入三個字元後按了回車鍵,而回車鍵實際上是輸入了兩個字元,第乙個字元表示從輸入緩衝區讀取字元,第二個字元則仍保留在輸入緩衝區內,被第二次的scanf給讀取出來,並賦給了變數a。解決方法是在迴圈結束時fflush stdin 一下 這裡的原因吧,你再輸入,值就不是3了吧 scanf c c...
c語言問題幫我程式設計序,c語言問題 幫我編乙個程式
include main for i 0 i 4 i for i 0 i 4 i high 0 找最高平均分部分 for i 1 i 4 i if pinjun high for i 0 i 4 i 列印分數部分printf 第 d個同學的平均分為 f n i 1,pinjun i printf 平...
c語言程式,幫忙詳細分析一下,C語言程式,幫忙詳細分析一下!
天堂妹兒 選b,等於10。首先是t 3 f t,3 也就是4 f t,3 然後是4 t 2 f t,2 算出來是7 f t,2 然後是7 t 1 f t,1 算出來是9 f t,1 然後是9 t 0 f t,0 算出來是10 f t,0 由於此時n 0,所以返回,結果為10。 草野閒羊 選b,等於1...