在定义一个新变量与沿用一个旧变量时,一定要记得初始化,否则就可能出现很大的问题!!
比如
C
'''
#include <stdio.h>
int h(int n);
int main(void){
int n=0,i=0,sum=0;
while(1){
scanf("%d",&n);
if(n==0)return 0;
for(i=1;i<=n;i++){
sum+=h(i);
}
printf("%d\n",sum);
}
}
int h(int n){
int i=0,sum=0;
for(i=1;i<=n;i++){
sum+=i*2-1;
}
return sum;
}
'''
如果用户在此时输入多个数字,那么,后面的和就会加上前一个数字输入的结果
比如
1 2就会输出1 6(但实际上应该是1 5)
正确代码
C
'''
#include <stdio.h>
int h(int n);
int main(void){
int n=0,i=0,sum=0;
while(1){
scanf("%d",&n);
if(n==0)return 0;
for(i=1;i<=n;i++){
sum+=h(i);
}
printf("%d\n",sum);
sum=0;//重新初始化
}
}
int h(int n){
int i=0,sum=0;
for(i=1;i<=n;i++){
sum+=i*2-1;
}
return sum;
}
'''