1. 程式人生 > >把變數定義在迴圈體內和迴圈體外的疑惑

把變數定義在迴圈體內和迴圈體外的疑惑

#include<iostream> int main() {     int n,sum=0;     int S2 = 1;     scanf("%d",&n);     for(int i=1;i<=n;i++)     {         for(int j = 1;j<=i;j++)         {             S2=S2*j;         }         sum+=S2;     }     printf("%d\n",sum%1000000);     return  0; }

#include<iostream> int main() {     int n,sum=0;

    scanf("%d",&n);     for(int i=1;i<=n;i++)     {         int S2 = 1;         for(int j = 1;j<=i;j++)         {             S2=S2*j;         }         sum+=S2;     }     printf("%d\n",sum%1000000);     return  0; }

把S2分別定義在迴圈體內外,經過編譯後,如輸入10,定義在外部時,輸出為:231215,錯誤。定義在內部時,輸出為: 37913,正確。

定義在迴圈體外,可能會出現bug?