關(guān)于三種循環(huán)的比較
#include <stdio.h>
int main()
{
? ? /* 小伙伴們:
? ? ? ? ? ?選擇你們認(rèn)為最合理的循環(huán)結(jié)構(gòu)完成功能吧 */
? ? int sum = 0; ?//定義計(jì)算結(jié)果變量sum
? ? int i = 1; ? ?//定義循環(huán)數(shù)字變量i
? ? int flag = 1; //定義符號(hào)狀態(tài)變量flag
? ??
? ? //使用for循環(huán)
? ? 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; ? ?
}
為什么出錯(cuò)了?
2017-01-17
我重新貼一下
也就是說,按照想法i從1~100循環(huán)各執(zhí)行一次,一共執(zhí)行100次。但是循環(huán)中i的值被改變了,所以和本意不符。
修改方式:不要在循環(huán)體里面修改變量,而是創(chuàng)造一個(gè)“替身”變量。
2017-01-17
i*=flag這里不對(duì),i的作用是控制循環(huán),你這個(gè)完成了直接上去執(zhí)行for循環(huán),如果i值變?yōu)樨?fù)的,再上去執(zhí)行i++就沒有意義了??梢园裪*=flag;sum+=i;改成sum+=i*flag;?
2017-01-17
不知道