你的程序有毛病。
循环是i=0、1、2
当i=2时,会比较a[2]与a[3],但是a[3]是不存在的,所以会得到不可预知的结果。
建议把for语句改为:
for(i=0;i<2;i++)
就没有问题了。
sum没有赋初值,所以,计算出来的是随机数。另外你的程序里很多地方都写错了,可能是你手打上来的笔误吧,帮你修改成可以运行的:
#include <stdioh>
int add_range(int low,int high)
{
int i, sum=0;//局部变量如果不赋初值,会是随机数
for(i=low;i<=high;i++)
sum=sum+1;
return sum;
}
int main(void)
{
int result[1000];
result[0]=add_range(1,10);
result[1]=add_range(1,100);
printf("result[0]=%d\nresult[1]=%d\n",result[0],result[1]);
return 0;
}
如下:
#include <stdioh>
int loopyear(int y)
{
if((y%4==0&&y%100!=0)||y%400==0)
return 1;
}
int main()
{
int y,m,d,dis=0,i;
int mon[12]={31,28,31,30,31,30,31,31,30,31,30,31};
scanf("%d%d%d",&y,&m,&d);
if(m>6||(m==6&&d>=6)){ //下一年66
for(i=m-1;i<12;i++){
dis+=mon[i];
}
dis-=d;
if(m<2)dis+=loopyear(y);
dis+=loopyear(y+1);
dis+=mon[0]+mon[1]+mon[2]+mon[3]+mon[4]+mon[5]+6;
}
else{//今年66前
for(i=m-1;i<5;i++){
dis+=mon[i];
}
dis=dis-d+6;
if(m<=2)dis+=loopyear(y);//从根源治理:31日
}
printf("%d days\n",dis);
return 0;
}
以上就是关于c语言中的bug,f(0)竟然是成立的,这是什么原因导致的全部的内容,包括:c语言中的bug,f(0)竟然是成立的,这是什么原因导致的、关于C语言里的一个程序bug,请问这个程序有什么bug,为很么第二次result[1]结果不对、C语言,日期设置BUG等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)