C語言 給定a和b,輸出a b的最後乙個數字。

2025-02-09 08:29:48 字數 2387 閱讀 8945

1樓:匿名使用者

int的範圍太小了,如果某個數的n次方就大於int的範圍,那麼這個數就會溢位,導致sum的值不正確了。

這裡需要輸出的是最後乙個數字而已。可以優化處理的。

#include

int main()

int a,b,n,sum=1;

a=a%10;

for(int i=0;isum=(sum*a)%10;

printf("%d",sum);

return 0;

例如13的4次方,其實就是最後乙個的4次方就可以了。

也就可以換算成3的4次方的最後一位。

sum= 1*3 %10 = 3

sum = 3*3 %10 =9

sum = 9*3 %10 = 7

sum = 7 * 3 %10 = 1

c語言題目 b=3 ; b=(++b)+(++b)+(++b); 輸出最終b=? 答案是16 具體怎麼算的?我怎麼算到...

2樓:福星星廉河

計算b=(++b)+(b)+(b);時第一步:計算第乙個(++b)這點誰都不會錯;此時b=4;

第二步:計算第二個(++b)這點也沒有問題吧,此時b=5;

第三步:計算(++b)+(b)將5代入,(+b)+(b)=10;這點容易想不通,為什麼不是5+4呢?因為變數只有乙個儲存單元,中間結果被覆蓋掉了。

第四步:之後的運算應該不是問題了吧……

程式是先執行了b=(++b)+(b);這兒等號賦值語句執行前,a已經完成了兩次自加a的值為5,所以加了之後b=10;然後b=b+(+b);b自加變成6,所以b=10+6=16;

3樓:利寄南賴禾

我覺得計算結果應該為18才對啊。

首先,b初始值為3,三個前加後為6,6+6+6=18編譯器執行後的結果也是18

注意一點,前加的優先順序高於加號。

4樓:緱雅靜劉佳

a=a+++b+++c;

到了這裡。實際上根據優先順序就是a=

a++)b++)c

a++的值是1,a的值變成了2

b++的值是1,b的值變成了2

c還是1然後吧等式的結果賦給a,所以a就是3了。

執行完**的結果就是a=

3b=2c=1

5樓:張廖懷蓮戴富

這個是運算堆疊的問題導致的。

首先計算機會按照運算子號從左往右開始壓棧。(也就是那兩個加號)第乙個+進棧,隨後和它相關的兩個數字也會進棧。((b)(+b)),這樣就會有+

+b)(+b)的堆疊結果。也就是「+」5」「5」的堆疊結果。然後第二個+進棧,變數進棧。+「6」。

所以上邊的式子在計算機中執行的時候是:

5+5+6。所以才會有16的結果。

6樓:亢梅風恭仙

只能說是編譯器的原因,你試試:

b=3;b=(++b)+(b);

估計答案是10.

的優先順序比+高,所以先做2次++,b變成了5,再做b=5+5=10;

但是你寫b=(++b)+(b)+(b);答案是16說明編譯器先把(++b)+(b)=10,算了出來,再做了b=10+(+b)=16

其實不考慮編譯器,我覺得正確答案應該是18,所以先做3次++,b變成了6,再做b=6+6+6=18;

a=b=c=1;++a||++b&&++c;執行後輸出a,b,c各是多少

7樓:匡新蘭革裳

a\b\c初是1

後面的邏輯表示式本來是先算&&再算||

但是最終還是算||,中當左邊表示式為真時就不會計算右邊表示式所以只運算++a,所以結果是a=2,b=1,c=1

8樓:望梓維沙儀

1a=b=c=1;++a||+b&&+c;執行後輸出a,b,c分別是211。

2++a||+b&&+c;這個語句只會執行++a,++b&&+c不會執行。c語言在做||運算時,如果第乙個運算元++a為真(非零),直接返回真,而不計算第二個運算元++b&&+c。

輸入整數a,b,c,當a為1時輸出b和c的和

9樓:俎思菱牽同

是旦蘆正數吧。

a+b+c)(1/a+1/b+1/c)

a+b+c)/a+(a+b+c)/b+(a+b+c)/c3+(a/b+b/a)+(a/c+c/a)+(b/c+c/b)由均值不等式。

a/b+b/a>=2根號(a/b*b/a)=2同理a/c+c/a>=2

b/賣山c+c/b>=2

所以原式》=3+2+2+2

若且唯若a=b=c時等號成立。

所中遲中以(a+b+c)(1/a+1/b+1/c)>=9

c語言a的輸出結果為什麼是 1,b的最後輸出結果為什麼是

資料在計算機中都是以補碼儲存的,a的補碼為0xffff,b的補碼為0xfffe。我這為寫著方便,用十六進位制寫,沒用二進位制寫,要不16個1看著都暈。d是按有符號整型輸出,此時認為a是個負數,根據0xffff來求該負數絕對值的原碼,為0x0001,輸出即為 1。u是按無符號型資料輸出,此時將b看作正...

c語言 輸入正整數a,b,c,輸出a b的小數形式,保留小數

include int main include 最大的精度 define max length 120 計算商 int getfactor int a,int b 計算餘數 int getremainder int a,int b 是否整除 bool isaliquot int a,int b r...

c語言怎麼去掉輸出的,c語言怎麼去掉輸出的

把 printf d n 10 換成 if n 10 0 printf d n 10 c語言,將double資料輸出時,如何去掉小數位多餘的0?printf g n a 這樣試一下,是不是你想要的 double a 1.001 printf lf a 會輸出1.001000,怎樣才能輸出1.001 ...