输入一个数x,求x位数的回文个数,我的代码哪里错了
答案:1 悬赏:10 手机版
解决时间 2021-01-22 07:59
- 提问者网友:遁入空寂
- 2021-01-21 18:26
输入一个数x,求x位数的回文个数,我的代码哪里错了
最佳答案
- 五星知识达人网友:大漠
- 2021-01-21 19:31
错误比较多,都是逻辑错误。
1、pow函数要求参数为双精度型。
2、既然规定i为整型,那么就不存在a=(int)i
3、对于每个i的循环体内,a和i都用反了。
4、对于每个i进行判断后,sum没有及时重新赋值为0
错误多,主要语句几乎每句都错,逐行标注如下:
#include
#include
int main()
{
int i,a,sum,b,count=0,x;
scanf("%d",&x);
for(i=(int)pow(10.0,x-1);i<(int)pow(10.0,x);i++)//注意格式,保证i赋值合法
{
a=i;//去掉(int)
sum=0;//添加语句sum=0,以保证对于每个i进行判断时,sum的初始值都是0
while(a!=0)//i改为a
{
b=a%10;//i改为a
a=a/10;//i改为a
sum=sum*10+b;
}
if(sum==i)//a改为i
count++;
}
printf("%d
",count);
return 0;
}追问谢谢
1、pow函数要求参数为双精度型。
2、既然规定i为整型,那么就不存在a=(int)i
3、对于每个i的循环体内,a和i都用反了。
4、对于每个i进行判断后,sum没有及时重新赋值为0
错误多,主要语句几乎每句都错,逐行标注如下:
#include
#include
int main()
{
int i,a,sum,b,count=0,x;
scanf("%d",&x);
for(i=(int)pow(10.0,x-1);i<(int)pow(10.0,x);i++)//注意格式,保证i赋值合法
{
a=i;//去掉(int)
sum=0;//添加语句sum=0,以保证对于每个i进行判断时,sum的初始值都是0
while(a!=0)//i改为a
{
b=a%10;//i改为a
a=a/10;//i改为a
sum=sum*10+b;
}
if(sum==i)//a改为i
count++;
}
printf("%d
",count);
return 0;
}追问谢谢
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯