c语言中的bug,f(0)竟然是成立的,这是什么原因导致的

c语言中的bug,f(0)竟然是成立的,这是什么原因导致的,第1张

你的程序有毛病。

循环是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等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9692450.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存