求找错C程序
答案:2 悬赏:0 手机版
解决时间 2021-04-03 16:14
- 提问者网友:富士山上尢
- 2021-04-02 15:19
求找错C程序
最佳答案
- 五星知识达人网友:大漠
- 2021-04-02 16:15
这种题,直接用递归好啦,还有就是,你的代码风格太差了,这个要改!
代码如下,格式跑了,不管~~
#include "stdio.h"
long function(int in)
代码如下,格式跑了,不管~~
#include "stdio.h"
long function(int in)
{
if (in >= 0)
{
return 5 * in - 10000;
}
else
{
return function(function(-in));
}
}
int main(int argc, char* argv[])
{
int count = 0;
long number = 0;
long result = 0;
scanf("%d", &count);
while(count > 0)
{
scanf("%d", &number);
result = function(number);
printf("%d
", result); count--;
}
return 0;
}
追问谢谢你。。。不过我是刚学一个月的新生,你程序再好没用,没学过。。。。交上去就露馅开。。。。所以我不求新程序,只求改错。。。。还是谢谢你。。。
全部回答
- 1楼网友:有你哪都是故乡
- 2021-04-02 16:51
你的程序可以运行但好像结果不对,可能因为你的和题意不一样,题是只有当x大于0时才进行一次5*x-10000然后才输出,但你的事只判断一次就输出了。应该加一个循环,当x>=0时结束循环然后进行一次5*x-10000然后输出。我也不太清楚,这样可能就对了,如果错了见谅,我没学多久
#include
int main()
{
int b,n;
long x,y;
scanf("%d",&n);
b=1;
while(b<=n)
{
scanf("%ld",&x);
while(x<0)
{
x=5*(-x)-10000;
}
printf("%ld\n",y=5*x-10000);
b++;
}
return 0;
}追问谢谢你的详细回答。但是1我的程序是同时计算几个y的,但你的不是2即使不考虑一,当x小于0时,如果再次的出的x仍是负数,显然是不能代入算的,而应再次取相反数。。3我们学校给出的结果是运行错误而不是答案错误。。还是很谢谢你,话说我也刚开始学,一起加油吧。。。谢谢
#include
int main()
{
int b,n;
long x,y;
scanf("%d",&n);
b=1;
while(b<=n)
{
scanf("%ld",&x);
while(x<0)
{
x=5*(-x)-10000;
}
printf("%ld\n",y=5*x-10000);
b++;
}
return 0;
}追问谢谢你的详细回答。但是1我的程序是同时计算几个y的,但你的不是2即使不考虑一,当x小于0时,如果再次的出的x仍是负数,显然是不能代入算的,而应再次取相反数。。3我们学校给出的结果是运行错误而不是答案错误。。还是很谢谢你,话说我也刚开始学,一起加油吧。。。谢谢
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯