搜索
查看: 544|回复: 4
打印 上一主题 下一主题

不知道那儿错了,陷入死循环了

[复制链接]
跳转到指定楼层
楼主
 楼主| 发表于 2018-10-21 15:17:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
5啊哈币
#include <stdio.h>
#include <stdlib.h>
int fun(int x,int y);
int main()
{int a,b,c,d,p,t,t2,i,l,xiang;
printf("请输入炮弹数量:");
scanf("%d",&p);
printf("请输入第一、二、三门礼炮的发射间隔:\n");
scanf(" %d",&a);scanf(" %d",&b);scanf(" %d",&c);
d=fun(a,b)+fun(a,c)+fun(b,c);
xiang=p*3-d;
printf("礼炮响了%d炮。",xiang);

       
        system("pause");
        return 0;
}
int fun(int x,int y)
{int d=0,i,l,t,t2,p;
for(i=1;i<=p;i++)
{t=i*x;
   for(l=1;l<=p;l++)
   {t2=l*y ;
   if(t==t2)++d;}
}
return d;
}


最佳答案

查看完整内容

(1) int fun(int x,int y); fun定义了两次,第一次后面啥都没有; (2) t,t2,p全部没赋值,就是随机值,这是你死循环的原因; (3) x,y在函数中完全没用到,你要干什么?
沙发
发表于 2018-10-21 15:17:32 | 只看该作者
(1) int fun(int x,int y); fun定义了两次,第一次后面啥都没有;
(2) t,t2,p全部没赋值,就是随机值,这是你死循环的原因;
(3) x,y在函数中完全没用到,你要干什么?
板凳
 楼主| 发表于 2018-10-21 19:51:48 | 只看该作者
吉星高照1 发表于 2018-10-21 16:33
(1) int fun(int x,int y); fun定义了两次,第一次后面啥都没有;
(2) t,t2,p全部没赋值,就是随机值 ...

1.定义了两次,好像确实只需要一次,我是在百度上看到要加才加的。2.t,t2分别是由i*x和l*y来赋值的,不需要赋初值,p的初值是一开始输入的数定的,也不用我赋初值。
3.x和y指的是任意字符,不是指具体的某个数值,一般是不会具体用在主函数上的,x和y要由主函数需要代入的字母决定。

地板
 楼主| 发表于 2018-10-21 21:08:13 | 只看该作者
我明白了,没有在主函数中将p的值带人fun()
5#
 楼主| 发表于 2018-10-21 21:08:41 | 只看该作者
#include <stdio.h>
int main()
{int a,b,c,d,p,t,t2,i,l,xiang;
printf("请输入炮弹数量:");
scanf("%d",&p);
printf("请输入第一、二、三门礼炮的发射间隔:\n");
scanf(" %d",&a);scanf(" %d",&b);scanf(" %d",&c);
d=fun(a,b,p)+fun(a,c,p)+fun(b,c,p);
xiang=p*3-d;
printf("礼炮响了%d炮。",xiang);

        
        system("pause");
        return 0;
}
int fun(int x,int y,int z)
{int d=0,i,l,t,t2;

for(i=1;i<=z;i++)
{t=i*x;
   for(l=1;l<=z;l++)
   {t2=l*y ;
   if(t==t2)++d;}
}
return d;
}
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表