环境:蓝桥杯官网下载的Dev-C++
异常情况:在以下代码的情况下,无论输入任何合理的数字,程序末尾的H总是0.
更换IDE为C-Free 异常消失
将H移到外部后改为全局变量,异常消失
将中间无关代码注释后,异常消失
怀疑是编译器的bug或者是程序运行中堆出现了某种Bug,先记录下来,以后再研究
#include<stdio.h>
int main(){
int H=5224;
scanf("%d",&H);
int T=999999;
int i=10000;
for(i=10000;i<=99999;++i){
char Temp[5];
sprintf(Temp,"%d",i);
if(Temp[0]==Temp[4]&&Temp[1]==Temp[3]){
int a=(int)(Temp[0]-'0');
int b=(int)(Temp[1]-'0');
int c=(int)(Temp[2]-'0');
if(a+a+b+b+c==H){
printf("%s\n",Temp);
}
}
}
for(i=100000;i<=999999;++i){
char Temp[6];
sprintf(Temp,"%d",i);
if(Temp[0]==Temp[5]&&Temp[1]==Temp[4]&&Temp[2]==Temp[3]){
int a=Temp[0]-'0';
int b=Temp[1]-'0';
int c=Temp[2]-'0';
if(a+a+b+b+c+c==H){
printf("%s\n",Temp);
}
}
}
printf("%d",H);
return 0;
}