我用c語言編了程式,問題和我的方案如圖,但是按回車卻什麼都不輸出,這是為什麼啊,請問哪裡錯了啊

時間 2022-07-15 19:25:13

1樓:第一碗羊雜割

因為題主在內層的第三個 while 迴圈,也就是

while (p >= 1)

中改變了全域性變數 i 的值,而 i 不僅是輸出結果,還是最外層 while 迴圈的計數器,所以這個值一旦被改變整個迴圈就會混亂,最後出現死迴圈,導致程式無限執行無法輸出結果。所以題主需要一個 i 的副本來完成上述迴圈,而不改變 i 本身的值。

另一點,題主的 sum 變數是全域性的,所以每執行一次最外層迴圈後就必須將其清零,否則 sum 的值會累加,造成計算各位數字之和時出現錯誤。

還有,題主的變數 p, t, len 等我感覺沒有太多必要,可以用 l 的值來代替。以下是我寫的一個修改版本,供題主參考。

#include

int main()

// 此處 multiplier 相當於題主原先的 p

multiplier = multiplier / 10;

while (multiplier >= 1)

quotient = num / m;

if (quotient == sum)

num++;

}return 0;

}執行結果如下:

還有一點建議,題主以後最好避免使用一些簡單字母作為變數名稱,尤其在變數比較多的情況下。否則在別人看起來會比較費勁,或者也可以給變數加一些註釋來註解。

初學c語言的問題,如圖,為什麼按回車控制檯就結束了

c語言問題,為什麼執行不下去的,我輸入一個數,按回車沒反應,這是為什麼?高手幫幫忙

2樓:伊·梵

void main()

while(fabs(a-b)>eps);就可能會死迴圈aa();

gold();

printf("x=%lf,f=%lf",x,f); //用%lf}當程式沒有反應的時候,請使用除錯功能,如果沒有除錯功能,可以新增printf語句檢視程式運**況

本例中可以在do迴圈最後新增

}while(fabs(b-a)>eps);

3樓:匿名使用者

雖然沒明白你的**要實現什麼??

但是double a,b,x,f,eps;

你的scanf() 裡面的%d肯定是不對的吧!!!

4樓:匿名使用者

你的scanf輸入的eps貌似和後面的函式引用沒關係,還要你的函式都沒人返回值,導致你的程式執行沒有反應了。還要你aa函式裡面繼續引用函式f() f(a3) 都沒定義 無法繼續執行啊

c語言為什麼我這個程式輸入了整數後按回車沒有輸出結果。**錯了

5樓:匿名使用者

因為d沒有賦值

執行時d的值是隨機的

不可預知

所以執行結果有3種可能

1.如果d+1>integer則迴圈1次,有結果:sum=d*d2.

如果d+1≤integer且d=0則死迴圈3.如果d+1≤integer且d≠0則迴圈多次,有結果很不幸你看到的是第2種情況

你沒有題目

所以不知道是**錯了

6樓:匿名使用者

應該是d=count

你寫反了

C語言程式問題,我的c語言程式有什麼問題? 10

fun x,y,1 求每一行的最小值放進y裡面 fun x,y,0 求每一行的最大值放進y裡面 伺服器 這個應該是判斷條件有問題,那個判斷形式應該是?前後返回的是判斷條件為真的時候的值,後面返回的是判斷條件不成立的時候的值,你這個寫法根本沒有改變flag的值,因為根本就沒有做賦值的操作。我的c語言程...

今天我編了小程式以完成C語言中的字串連線函式「strcat」的功能,於是想到了指標來實現。但最後程式

自己對照看一下。main b 15 p a,q b int i for i 0 i 15 i p i 6 q i printf s n s n a,p 首先你的printf s a 22 肯定報錯列印後面接陣列名,a 22 陣列訪問越界 應該printf s n a 還有你的 hoello 有7位,...

一個關於C語言的程式問題?C語言程式問題?

資料在記憶體中都是二進位制的,無符號的和有符號的資料,在記憶體中的表示是一樣的。在記憶體中資料的表示都是補碼,比如1在記憶體中表示為00000001,1在記憶體中的表示為11111111.不管你是用什麼有符號,還是無符號的,在記憶體中,資料都是這樣表示的。你定義了一個unsigned int a,只...