C语言 在1~n个整数求回文数 个数

#include<stdio.h>main(){intn,x,temp,t,sum=0,i;scanf("%d%",&i);for(n=1;n<i;n++){temp=0... #include <stdio.h>
main()
{
int n,x,temp,t,sum=0,i;
scanf("%d%",&i);
for(n=1;n<i;n++)
{
temp=0;
x=n;
do
{
t=x%10;
temp=temp*10+t;
x=x/10;
}while(x>0);
if(temp==n)
{

sum++;
}
}
printf("\n sum=%d\n",sum);
}
哪里有错?
#include <stdio.h>
main()
{
int n,x,temp,t,sum=0,i;
scanf("%d",&i);
for(n=1;n<i;n++)
{
temp=0;
x=n;
do
{
t=x%10;
temp=temp*10+t;
x=x/10;
}while(x>0);
if(temp==n)
{

sum++;
}
}
printf("\n sum=%d\n",sum);
}
结果错误,逻辑错误
展开
 我来答
xixims008
2011-10-30 · TA获得超过102个赞
知道答主
回答量:37
采纳率:0%
帮助的人:26.9万
展开全部
#include <stdio.h>
int main(void)
{
int n, x, temp, t, sum = 0, i;
scanf("%d", &i);
//for(n=1;n<i;n++)
for (n = 0;n <= i;n++) //因为0也是回文数..所以应该从零开始, n<=i,包括自己之内的回文数
{
temp = 0;
x = n;
do
{
t = x % 10;
temp = temp * 10 + t;
x = x / 10;
}
while (x > 0);
if (temp == n)
sum++;
}
printf("\n sum=%d\n", sum);
}

1000以内的回文数
  在自然数中,最小的回文数是0,其次是1,2,3,4,5,6,7,8,9,11,22,33,44,55,66,77,88,99,101,111,121,131,141,151,161,171,181,191,202,212,222,232,242,252,262,272,282,292,303,313,323,333,343,353,363,373,383,393,404,414,424,434,444,454,464,474,484,494,505,515,525,535,545,555,565,575,585,595,606,616,626,636,646,656,666,676,686,696,707,717,727,737,747,757,767,777,787,797,808,818,828,838,848,858,868,878,888,898,909,919,929,939,949,959,969,979,989,999.

参考资料: 百度

东5京5热
2015-10-14 · 知道合伙人人文行家
东5京5热
知道合伙人人文行家
采纳数:292 获赞数:110345
我是华北水利水电大学大三学生,英语六级 计算机二级已过 数学 英语成绩优秀 希望加入百度知道 贡献力量

向TA提问 私信TA
展开全部
#include <stdio.h>
main()
{
int n,x,temp,t,sum=0,i;
scanf("%d%",&i);
for(n=1;n<i;n++)
{
temp=0;
x=n;
do
{
t=x%10;
temp=temp*10+t;
x=x/10;
}while(x>0);
if(temp==n)
{

sum++;
}
}
printf("\n sum=%d\n",sum);
}
#include <stdio.h>
main()
{
int n,x,temp,t,sum=0,i;
scanf("%d",&i);
for(n=1;n<i;n++)
{
temp=0;
x=n;
do
{
t=x%10;
temp=temp*10+t;
x=x/10;
}while(x>0);
if(temp==n)
{

sum++;
}
}
printf("\n sum=%d\n",sum);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
冰山珀西
2011-10-30 · TA获得超过3392个赞
知道小有建树答主
回答量:1673
采纳率:0%
帮助的人:447万
展开全部
for(n=1;n<i;n++)改为for(n=1;n<=i;n++)
scanf("%d%",&i);改为scanf("%d",&i);
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友01c3d22
2011-10-30 · 超过35用户采纳过TA的回答
知道答主
回答量:83
采纳率:0%
帮助的人:76.2万
展开全部
scanf("%d%",&i);
应scanf("%d",&i);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
day嘎嘣脆丶
推荐于2017-10-08 · 知道合伙人宠物行家
day嘎嘣脆丶
知道合伙人宠物行家
采纳数:823 获赞数:30539
学生;

向TA提问 私信TA
展开全部
  C语言编写如下:
  #include <stdio.h>
  int main()

  {
  int num;
  long int i;
  int sum1, sum2,temp;
  int flag=0;

  scanf("%d", &num);

  for(i=10000;i<1000000;i++)
  {
  sum1=0; sum2=0;
  temp=i;
  while(temp)
  {
  sum1=sum1*10+temp%10;
  sum2=sum2+temp%10;
  temp=temp/10;
  }
  if ((sum1==i) && (sum2==num))
  {
  printf("%d\n", i);
  flag=1;
  }
  }
  if (flag==0)
  printf("%d\n",-1);
  return 1;
  }
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式