關于三種循環的比較
#include <stdio.h>
int main()
{
? ? /* 小伙伴們:
? ? ? ? ? ?選擇你們認為最合理的循環結構完成功能吧 */
? ? int sum = 0; ?//定義計算結果變量sum
? ? int i = 1; ? ?//定義循環數字變量i
? ? int flag = 1; //定義符號狀態變量flag
? ??
? ? //使用for循環
? ? for(i=1;i<=100;i++)
? ? {
? ? ?if(i%2==0)
? ? ?{
? ? ? ? flag=-1;?
? ? ?}
? ? ?else
? ? ?{
? ? ? ? flag=1;
? ? ?}
? ? ?i*=flag;
? ? ?sum+=i;
? ? } ?
? ? printf("sum=%d\n",sum);?
? ??
? ? return 0; ? ?
}
為什么出錯了?
2017-01-17
我重新貼一下
也就是說,按照想法i從1~100循環各執行一次,一共執行100次。但是循環中i的值被改變了,所以和本意不符。
修改方式:不要在循環體里面修改變量,而是創造一個“替身”變量。
2017-01-17
i*=flag這里不對,i的作用是控制循環,你這個完成了直接上去執行for循環,如果i值變為負的,再上去執行i++就沒有意義了。可以把i*=flag;sum+=i;改成sum+=i*flag;?
2017-01-17
不知道