求教?。?!
#include <stdio.h>
int main()
{
? ? int sum = 0; ?
? ? int i = 1; ??
? ? int flag = 1;?
? ? while(i<=100)
? ? {
? ? ? ? i++;
? ? ? ? ?if(i%2==1)
? ? ? ? {
? ? ? ? ? ? sum+=i;
? ? ? ? }
? ? ? ? else
? ? ? ? {
? ? ? ? ? ? sum-=i;
? ? ? ? }
? ? ? ??
? ? }
??
? ? printf("sum=%d\n",sum);?
? ??
? ? return 0; ? ?
}
答案為什么不對
2015-08-08
額,沒有必要用if...else...語句判斷吧.因為有flag變量呀,若是你硬是要用if...else...語句判斷的話你的邏輯有問題.
正確代碼是這樣的
看到?jīng)],是先減法,在加法.為什么這樣呢:首先觀察式子:1-2+3-4.....會發(fā)現(xiàn)奇數(shù)是要加上去的,偶數(shù)需要減掉.所以
是用來判斷是否為奇數(shù).
其實你把你的程序中的if語句的條件改成i%2==0應(yīng)該會有正確的結(jié)果.
寫程序真正難處不在于語法,而在于邏輯.希望我的回答對你有幫助.
2015-08-09
哦,是這樣的:
看下這段代碼
變量i的初始值是1,對吧.然后在第3行遇到了i++,所以i就是2了,這樣一直下去,到最后,i的邊界值是101.懂了嗎?
所以需要按照上面代碼邏輯來寫,若是按照你的邏輯來寫的話把
語句放在if語句后面就好了.看下完整代碼.
這樣也可以.你的代碼把i++的位置調(diào)換一下也會達到同樣的效果:
要注意我們使用變量i的值是經(jīng)過i++ 過后的.最后關(guān)心下邊界值.