1樓:匿名使用者
1/2 是整除。。c語言的整除是不保留小數點後面的數,所以是0就算你賦值給float型的變數也一樣是0
所以,你無論怎麼迴圈,怎麼加,都是0。。
你應該 sum=1.0/2.0; 這樣。。
整形變數 int 是不會接受小數的,一樣會把小數點後面的數都去掉。還是為0
這樣一來。就是0+0了。。所以還是0
你的for也不對。。。p已經有初值了,你就不必給他初始化了。
改為 for(;p<=9;p++) 這樣就可以了
2樓:匿名使用者
p=2說明p的初值是2
for(p=1;p<=9;p++)
p的初值為你改成了1
3樓:紫翼魔狼
for(p=1;p<=9;p++)??
p=2;??
for(p=2;p<=9;p++)??
4樓:匿名使用者
你好!我試了這段**,改與不改的結果都是一樣的,都是:0.000000。
樓上說到的p的初值,按照程式的功能,其實並沒有區別,迴圈只不過是一個8次,一個9次而已。
這是因為,按照樓主給的變數型別,那麼:k/p=0,sum=1/2=0, 也就導致:0+0反正是等於0,無論迴圈多少次,結果都是0。
不過,如果樓主你的出現了錯誤的話,請檢查你的輸入有沒有問題?我在複製你的**到編譯器裡面的時候,出現了好多你筆誤的地方,比如for迴圈裡printf函式中,逗號應該在引號外;while迴圈中,應該是 \n 而不是 /n ;還有,請注意分號是英文輸入狀態的,而不是中文狀態的,最後面那個右括號也是。
請注意這些細節。
希望對你有用,謝謝!
5樓:匿名使用者
在c語言中,兩個int型數相除的結果是整數
語法上的細節,printf的回車換行符是\n ,是反斜槓
標點:分號,括號都要在英文狀態下
你原來的程式
#include
void main()
printf("%f/n",sum); //輸出為浮點型,帶六位小數,所以結果為0.000000
} //注意上面的/n,應該是\n
for(p=1;p<=9;p++) //這個for迴圈跟上面的while迴圈是一樣效果
//但這裡p是從1開始,所以執行9次
sum=sum+a; //由於sum和a,都為0,所以這裡的sum算怎麼計算都是0
printf("%f\n,"sum); //因此這裡的輸出結果也是:0.000000
} //注意這上面得逗號、引號,引號裡可以有逗號,但沒上面作用,而變數sum前面必須有逗號。後面的括號和分號要英文狀態下
要看是不是不一樣,看一下修改的程式
#include
void main()
printf("%f\n",sum); //這裡的結果為:4.500000
}用for迴圈
for(p=1;p<=9;p++) //這個for迴圈跟上面的while迴圈是一樣效果
//但這裡p是從1開始,所以執行9次
sum=sum+a; //這個就執行9次,比如第一次sum=0.500000+0.500000=1.000000
printf("%f\n",sum); //因此這裡的輸出結果也是:5.000000
}這樣應該可以明白了
希望能幫助到你,不明白**我,繼續為你解答
c語言迴圈問題,C語言 迴圈問題
迴圈體是 do while迴圈,執行語句的時候,第一次是先進入 do 裡,執行其中語句,第一次迴圈 a 2 這一句執行的結果是a被重新賦值為 10 2 12 x a 這一句執行的結果是x被重新賦值為 0 12 12 if x 50 的結果為 假 false 不執行 break while a 14 ...
C語言for迴圈的問題,C語言迴圈問題
一個偽 告訴你真相 我是大圈 一圈跑完,大圈還要跑嗎 要跑 繼續大圈與小圈的迴圈,不要跑 跳出迴圈 多層巢狀也是一樣 我是外圈 跑完了小圈,繼續中圈 中圈已結束 跳出中圈繼續執行外圈。中圈還沒結束 繼續中圈的迴圈 現在中圈也跑完了,再來跑大圈 如果大圈跑完了,該迴圈結束,還沒有的話繼續上面的奔跑,r...
新手求教c語言問題,新手求教C語言問題
在 unix中,eof表示能從互動式 shell 終端 送出 ctrl d 習慣性標準 在微軟的 dos 與 windows 中能送出 ctrl z。在某些例子處理純文字檔案或從 字元裝置 讀入資料,微軟ms dos的 shell 或系統程式會加入 ascii control z 字元到磁碟檔案結束...