C語言問題 int k 1 while k 3 k這個程式迴圈了幾次?求具體

2021-04-28 17:37:26 字數 3650 閱讀 5107

1樓:匿名使用者

寫錯了,會報錯的

bai。

k=3是把3賦值給duk,不是k等於3。

3如果是k==3,則

zhi無限迴圈,永不執dao行k++。

況且中間那個專

分號屬是空格才對吧。即使是空格,那也是無限迴圈。

寫成這樣比較靠譜:

int k=1;

while(k)

k--;

2樓:丁家宜大寶

k=3等於是賦值運算了,也就是說把3賦給了k,所以k的迴圈初始值是3也就是非0,不斷的執行k++,永遠非0,無限迴圈

3樓:寂寞而莫我知也

無限迴圈,把3賦值與k 構成了非0 一直迴圈下去

4樓:匿名使用者

啊。。。。。樓上正解

c語言,求大神回答 int k=1,n=325; do { k*=n%10;n/=10;}while(n); a. 3 b. 30 c. 523 d. 325

5樓:008列出

k=1*5*2*3=30

do…while迴圈條件是n非0,先執行迴圈再判斷條件

k*=n%10 是先將n對10取餘,再將餘數和k相乘,再賦給k

n/=10 是將n除以10之後的結果賦給n,但注意定義n是int整型的,故n/10的結果只取整數部分

首先,n=325,n%10 =5,執行k*=5,得到k=1*5=5。執行n/10 =32.5,故n=32!=0再迴圈

n=32,n%10 =2,執行k*=2,得到k=5*2=10。執行n/10 =3.2,故n=3!=0再迴圈

n=3,n%10 =3,執行k*=3,得到k=10*3=30。執行n/10 =0.3,故n=0退出迴圈

6樓:看灰過來了

取325的各位數字,將其相乘,也即5*2*3=30

c語言問題,求大神解決,我是小白,最好解釋下原因,謝謝拉

7樓:匿名使用者

因為 while(k=1) 不是while(k==1),while 裡面的 k=1 變成了 賦值語句,而不是實際目的與1去比較是否相等。這些程式 就會執行 k=1,然後再執行 k++;此時k=2;然後又執行 while(k=1),讓k=1;然後又再執行 k++;此時k=2;,又再 while(k=1),讓k=1,又再執行 k++;此時k=2;,如此迴圈,不會停止;此題我猜想是 想考 while語句 的語法 以及 賦值語句 與 比較語句的寫法;while(k=1) 與 while(k==1) 意思完全不同,同時 if(k=1) 與 if(k==1) 意思也完全不同。

8樓:五芷珍

c,while裡面都k重新賦值為1,然後作為判定條件k非零進入迴圈體,k++,之後k=2.再進入while迴圈,k重新被賦值為1.判定條件k為非零,繼續進入迴圈。 無限次迴圈。

9樓:茫茫人海中

while括號內的k=1是賦值語句,意思是將1賦值給k,這個句子永遠成立,所以while語句會永遠執行下去。

10樓:匿名使用者

while 裡面是k=1,是賦值,不是k==1

11樓:匿名使用者

while語句裡面的「k=1」是賦值語句,賦值成功為1.

c語言求s=1!+2!+3!+…+n!(n由輸入決定)。求大神能詳細解讀一下這個程式,尤其是for語句裡面是什麼意思

12樓:我是果瘋

第一二行**:int i,j,n;

long int t=1,sum=0;//定義了三個整數型(短整型)的變數,定義兩個長整整型變數並初始化。

第三行**:printf("input n:",&n);//提示輸入。

第四行**:scanf("%d",&n);利用scanf()函式輸入n。

第五行**:for (i=1;i<=n;i++)//進入for迴圈,外部for迴圈的主要作用是進行階乘的求和。

第六七八行**:t=1;

for(j=1;j<=i;j++)

t=t*j;//引用t這個變數進行對i這個階乘的計算,並將結果儲存在t中。內部的for迴圈的主要作用是計算階乘。

第九行**:sun=sum+t;//計算階乘的和。

第十行代**:printf("n!=%ld",sum);//利用printf()函式對結果進行輸出。

13樓:風林火陰山雷

您好!很高興為您解答。

解釋如下:

#include

void main()

printf("n!=%ld",sum);//輸出計算結果}望採納~如您還有不解,歡迎追問~

14樓:匿名使用者

for裡面是迴圈 i=1是第一次迴圈是i的值,i<=n是i的迴圈範圍,i++是i的值每次加1

15樓:nice丨

剛學c??要看懂 for裡面的最好懂得方法是你代幾個數一步一步試試 然後你應該會明白吧

c語言迴圈題!編寫一個程式,求s=1+(1+2)+(1+2+3)+...+(1+2+3+...+n)。

16樓:凌亂心扉

#include

main()

}printf("%d\n",sum);}

17樓:匿名使用者

修改如下

#include

int main(void)

printf("%d\n",s);

return 0;

}圖為原程式在第二層迴圈加了個輸出,查出第二層迴圈有問題。

18樓:匿名使用者

3個錯誤:

1、第9行,item=1應該是item=02、第10行,j<=n應該是j<=i

3、第14行,%d應該是%lf

除此之外:思路很蠢,演算法過於複雜,對於每個累加項,每次都要從1開始加。

#include

void main()

printf("%d\n",s);}

19樓:福建省寧德市

首先,你輸出的格式不對,s是double型的數,你卻寫了%d,應該改為printf(%f\n",s)

其次,你迴圈條件設的不對,裡面的j迴圈條件應該改為for(j=1;j<=i;j++)

還有就是item的值設定為0比較好,這樣比較好計算修改後的**如下

#include

int main(void)

printf("%f\n",s);

return 0;}

20樓:匿名使用者

這種找規律的迴圈體寫一個統一的結構就行

21樓:兄弟連教育北京總校

#include

void main()

printf("%d",s);}

22樓:sin絕望

#include

void main()

else

z=y/x;

}printf("y=%f",z);}

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

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

while(1)在C語言裡是不是無限迴圈

在c語言的世界裡除了0是false,其他的都是ture。看你糾結的真蛋疼 while 1 語句,只要不是內的語句產生的終止迴圈,while是不會跳出來的,當然中斷例外。while 1 語句判斷條件是死迴圈是沒錯,但也並非一定是死迴圈,也有可能執行到某個時刻就跳出while迴圈了。比如 while 1...

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

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