求C语言大神教我应该怎么改
答案:1 悬赏:10 手机版
解决时间 2021-03-10 19:15
- 提问者网友:温旧梦泪无声
- 2021-03-09 18:33
求C语言大神教我应该怎么改
最佳答案
- 五星知识达人网友:千夜
- 2021-03-09 19:45
程序应该是找出来输入的所有数字吧
你的程序的问题是在i==0时,d的值是0,a/d引起错误。
pow函数的定义是这样的:double pow(double x, double y);
所以,pow(10,-1) 的值是0.1,转换成int就变成0了,用一个函数之前了解一下定义
简单点,在a/d之前加一句判断退出就好了,if (d==0) break;
或者,循环条件改成 while (i>0)
另外,下面的代码给你参考
#include
int main(int argc, char ** argv)
{
int a = 0;
int b[100] = {0};
int i = 0;
scanf("%d",&a);
while(a>0) {
b[i++] = a%10;
a /= 10;
}
while (i-->0) {
printf("%d,", b[i]);
}
printf("
");
return 0;
}追问我这样改之后就可以运行了诶?怎么回事
你的程序的问题是在i==0时,d的值是0,a/d引起错误。
pow函数的定义是这样的:double pow(double x, double y);
所以,pow(10,-1) 的值是0.1,转换成int就变成0了,用一个函数之前了解一下定义
简单点,在a/d之前加一句判断退出就好了,if (d==0) break;
或者,循环条件改成 while (i>0)
另外,下面的代码给你参考
#include
int main(int argc, char ** argv)
{
int a = 0;
int b[100] = {0};
int i = 0;
scanf("%d",&a);
while(a>0) {
b[i++] = a%10;
a /= 10;
}
while (i-->0) {
printf("%d,", b[i]);
}
printf("
");
return 0;
}追问我这样改之后就可以运行了诶?怎么回事
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯