這個(gè)sum=sum+flag*i; flag=-flag;原理是什么? 老是搞不懂
??? for(i=1;i<=100;i++)
??? {
??????? sum=sum+flag*i;
??????? flag=-flag;
??????? i++;
??? }?
??? printf("sum=%d\n",sum);
???
??? return 0;???
}
??? for(i=1;i<=100;i++)
??? {
??????? sum=sum+flag*i;
??????? flag=-flag;
??????? i++;
??? }?
??? printf("sum=%d\n",sum);
???
??? return 0;???
}
2019-10-12
舉報(bào)
2020-03-01
你就把flag當(dāng)做1來運(yùn)算
需要負(fù)數(shù)時(shí),把flag乘-1,flag就成了-1,把他與i相乘,i就成了負(fù)數(shù)
第二次乘-1時(shí),flag就又變?yōu)?1
從而實(shí)現(xiàn)一正一負(fù)
2019-10-12
這有什么搞不懂,flag=-flag是循環(huán)體里的內(nèi)容代表正負(fù)切換。如果flag初值為1則第一次循環(huán)為-1,第二次為+1
sum是求和,SUM=0,在第一次循環(huán)SUM=0+FLAG*I,改變的始終是flag*i,sum不過是記錄他改變過程的總變化