一段c語言程式while後邊的看不懂,其他解釋。main int a,n,count

2025-07-21 21:20:10 字數 4121 閱讀 2044

1樓:樂觀的近在天涯

其實後面就是乙個迴圈啊,把a的值賦給tn,sn是求和,a*10就是得到10位數,以便下一次迴圈變成aa的兩位數的形式;a=3;n=3 ;tn=3;sn=3;a=10;

tn=33;sn=3+33;

a=330;tn=333;sn=3+33+333;

最後結果就是求出來的a+aa+aaa...之類形式的和。

c語言 main() { int a=9; a+=a-=a+a; printf(「%d\n」,a); }得多少?為什麼?

2樓:超絕至精

1、c語言 main() 最後結果就是-18;

2、賦值語句,從右到左依次執行:那麼:int a=9;a+=a-=a+a;

3、相當於:a-=a+a;a+=a;然後相當於:a=a-(a+a);a=a+a;

4、由於a初始化為9:a=a-(a+a)=-a=-9;a=a+a=-9+(-9)==-18;所以最後結果就是-18。

5、a+=(a-=a+a) 首先計算a-=a+a,因為賦值運算子的優先順序小於算術運算子故先算a+a;

6、 得出a-=18;此刻a的值還是9,計算a-=18得出a=-9;

7、a+=-9,計算得出a=a+(-9) a=(-9)+(9) 所以最後a=-18。

3樓:網友

賦值語句,從右到左依次執行:

那麼:int a=9;

a+=a-=a+a;

相當於:a-=a+a;

a+=a;然後相當於:

a=a-(a+a);

a=a+a;

由於a初始化為9:

a=a-(a+a)=-a=-9;

a=a+a=-9+(-9)==-18;

所以最後結果就是-18

4樓:網友

a+=(a-=a+a) 首先計算a-=a+a,因為賦值運算子的優先順序小於算術運算子故先算a+a 得出a-=18;此刻a的值還是9,計算a-=18得出a=-9;a+=-9,計算得出a=a+(-9) a=(-9)+(9) 所以最後a=-18.

5樓:網友

第一步:a + a = 18;

第二步:a - = 18---a = a - 18,此時a = 9 ,計算結果: -9;

第三步:a += -9 --a = a+ (9),因a= - 9,故結果: -18。

最後結果:-18.

c語言中一段程式: int y=10;while(y--); printf("y=%d\n」,y); 怎麼理解 ???

6樓:網友

int y=10;//定義y=10

while(y--)//如果這裡有分號,那就是空迴圈,直到y=0時,退出迴圈,但還要再執行一次y-1

printf("y=%d」,y); //這樣就是顯示成y=-1

7樓:網友

按照語句規範來複執行就行制了一共有3句:

1、int y=10; //定義y為bai整形du且賦值為102、while(y--)//注意while後面直接跟zhi著分號,這是個空語句,dao當y的值為真(非0 即為真)的時候,一直空語句迴圈,然後y每次迴圈自減1。

這個語句等價於。

while(y != 0)

y= y -1;

y = y -1;

3、printf("y=%d」,y); //列印輸出y

8樓:網友

int y=10;宣告瞭一復個制整形變數。

while(y--)這是乙個while迴圈bai,當y的值du變成0的時候迴圈就會結束。

zhi(我感覺後邊一句是不是應dao該是while迴圈裡邊的內容,不知道樓主有沒有輸入錯誤)

printf("y=%d」,y); 這句就是列印出y的值輸出格式是:y=y的具體值。

9樓:網友

whlie(y--)這句後面應該沒有分號。

縮排之後是這樣的。

int y=10;

while(y--)

printf("y=%d」,y);

利用while迴圈以此輸出了從9到0的數字y初始版值是10, 第一次權進入while(10), 然後y--,之後y=9,接著輸出了9

第二次進入while(9),然後y--,y=8,接著輸出8依次類推,當while(0)的時候終止。

c語言題 main() int a=011 printf(%d, \n,a) 輸出結果多少

10樓:網友

a=011在前面加了『0』,於是編譯器預設把它當成八進位的數,八進位的「011「相當於十進位的「9」

#include void main() { int a=7; while(a--); printf("%d\n",a); }

11樓:匿名使用者

首先a=7, 對於執行while(a--)的過程是,只要括號裡的數一直大於0,就一直迴圈while 語句,直到a為0 ,再判斷迴圈條件a--,又自減了一次,所以,輸出地時候就變為-1了。

12樓:網友

在while語句中,先判斷a,在a--的,當a=0;while語句不成立,跳出,然後a--,所以a=-1.

13樓:網友

while(a--)空迴圈,然後a--,是先判斷,然後a再自減,當a==0時,迴圈出來,然後a再減去1,就等於-1了。

c語言 main() { int a=9; a+=a-=a+a; printf(「%d\n」,a)

14樓:超絕至精

1、c語言 main() 最後結果就是-18;

2、賦值語句,從右到左依次執行:那麼:int a=9;a+=a-=a+a;

3、相當於:a-=a+a;a+=a;然後相當於:a=a-(a+a);a=a+a;

4、由於a初始化為9:a=a-(a+a)=-a=-9;a=a+a=-9+(-9)==-18;所以最後結果就是-18。

5、a+=(a-=a+a) 首先計算a-=a+a,因為賦值運算子的優先順序小於算術運算子故先算a+a;

6、 得出a-=18;此刻a的值還是9,計算a-=18得出a=-9;

7、a+=-9,計算得出a=a+(-9) a=(-9)+(9) 所以最後a=-18。

c語言的乙個程式,有一段看不懂

15樓:網友

p是乙個字元型的指標,因此,*p表示指標當前位置的字元。由於c中對字元型和整型是不進行區分的(即可以互相轉換的),因此*p也可以認為是乙個數字。同樣'0'也可以代表乙個數字。

根據ascii**表可以知道。字元'0'**是十進位的48,所示也可以認為'0'就是數字48。

因此,上面**的*p-'0'的意思就是把字元型的數字轉化為整型的數字。

例如:假設字串為:「s28「,並且p已經指向了'2',則:

p='2'=0x32=50;

p-'0'=50-48=2;

x=10*0+2=2;

然後:*p='8'=0x38=56;

p-'0'=56-48=8;

x=10*2+8=28;

16樓:網友

*p是乙個字元,*p-'0'就是*p的數字。

17樓:有錢買不起房子

這段**意思是從位址str中將是數字字元的提取出,存放到陣列a中假如位址儲存的是這樣的字串,"12a3"

while(*p>='0'&&*p<='9')根據這個判斷,'1'符合,這樣x=10*0+』1『-'0'=1,然後p++,p='2',x=10*1+'2'-'0'=12,看到這裡,你應該明白字串"12"怎麼變成數字12了。

問乙個問題,c語言中的countvalue()功能是什麼countvalue(int *a, int *n)是什麼意思,可以用什麼代替

18樓:網友

從字面上理解就是統計整型陣列a中的元素個數,並將結果儲存到n中傳出,這是個自定義函式,不能用什麼代替,要看具體實現的。

一段C語言程式解讀,求完整,求一段C語言程式的完成功能解釋

這題目我見過,不過貼上時好像被 吃掉 了 號,照此程式的話會死迴圈的。中間部分應該回是 void func1 int i void func2 int i 程式的分析如下 從main 開始執行,呼叫fun1 0 先輸出h,然後i變為2,再呼叫fun2 2 在fun2中,輸出l,然後i變為4,再呼叫f...

while語句的問題,c語言while迴圈的問題

這是兩種不同的迴圈結構 while 這是一個迴圈結構 這兒迴圈執行 中的內容 do while 這是另一種結構 這兒的迴圈是執行do 後面while之前的 中的內容 加 號是因為 do while 的語法要求要加 單獨while 不加分號,就像for迴圈後面不加分號一樣!這些都是語法要求。第一個是w...

c語言中while的用法C語言中while的用法

c語言中while的用法解析如下 一 1表示true,在bool型別取值false和true,0為false,非0為true 例如 1和2都是true 程式中,這裡1就表示永真,直到迴圈體內遇到break。二 while用法演示解析 1 含義 while 迴圈會在指定條件為真時迴圈執行 塊。2 語法...