kid_0203
2016-02-15 06:39
采纳率: 85.1%
浏览 1.6k
已采纳

求助c语言回文数问题~~~

图片说明
图片说明

 #include<stdio.h>
int main()
{
    int i,t=0,s=0;
    for(i=1000;i<10000;i++,s=0,t=0){
        t=i;
        while(t){
            s=s*10+t%10;
            t/=10;
        }
        if(s==i) printf("%d",i);
    }
    return 0;
} 

结果是0分......
请问哪里错了

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

8条回答 默认 最新

  • 林深 2016-02-15 07:08
    已采纳

    每个输出是不是需要一个换行呢?

     #include<stdio.h>
    int main()
    {
        int i,t=0,s=0;
        for(i=1000;i<10000;i++,s=0,t=0){
            t=i;
            while(t){
                s=s*10+t%10;
                t/=10;
            }
            if(s==i) printf("%d\n",i);
        }
        return 0;
    } 
    
    点赞 评论
  • 九台 2016-02-15 07:16

    请问这个是哪个网站?

    点赞 评论
  • zy__ 2016-02-15 07:30

    这是你程序的输出:估计这么一大串评分系统没法识别了
    10011111122113311441155116611771188119912002211222222332244225522662277228822992
    30033113322333333443355336633773388339934004411442244334444445544664477448844994
    50055115522553355445555556655775588559956006611662266336644665566666677668866996
    70077117722773377447755776677777788779978008811882288338844885588668877888888998
    9009911992299339944995599669977998899999

    点赞 评论
  • 智者知已应修善业 2016-02-15 08:41

    就运行结果没问题,若吹毛求疵来看,似乎循环内t=0是没必要的。
    似乎问题不在运行结果上,是否分毫不差复制?自然复制比任何弹指神功都快!写程序似乎不需要弹指神功!

    点赞 评论
  • 智者知已应修善业 2016-02-15 08:46

    程序算法都没错,改if(s==i) printf("%6d",i);

    点赞 评论
  • 锋巅 2016-02-15 08:50

    s每次都需要初始化的

    点赞 评论
  • O李家大少O 2016-02-15 09:01

    算法复杂度太高了,也就20个,千位和个位取1-9,百位和十位取0-9即可。

    点赞 评论
  • Get *null 2016-02-15 10:38

    输出需要换行——\n。
    这个题其实两个for穷举就可以了。
    #include

    int main()

    {

    int i,j;

    for(i=1; i<=9; i++)

    for(j=0; j<=9; j++)

    printf("%d%d%d%d\n",i,j,j,i);

    return 0;

    }

    点赞 评论

相关推荐 更多相似问题