標準答案好像有問題
#include?<stdio.h>
int?main()
{
????int?sum?=?0;
????int?i?=?1;
????int?flag?=?1;
????while(i<=100)
????{
????????i++;
????????sum?+=?i?*?flag;
????????flag?*=?-1;
????????printf("%d\n",?sum);??//?執行的第一步結果是2,是錯誤的。雖然最終結果是-50沒錯,但是第一步是sum?+=?i?*?flag的時候,i是2
????}
????return?0;
}
2020-10-04
可是我覺得i++本來的定義就是先讀數,再取值,也就是你把i++放在前面也沒關系,因為它會先讀取1,再取值為2,所以在第一次循環中實際參加的數就是1
2020-09-25
#include?<stdio.h> //?正確答案應該是這樣 int?main() { ????int?sum?=?0; ????int?i?=?1; ????int?flag?=?1; ???? ????while(i<=100) ????{ ????????sum?+=?i?*?flag; ????????flag?*=?-1; ????????i++; ????????printf("%d\n",?sum); ????} ????return?0; ???? }