| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2947 人关注过本帖
标题:需要输出所有三位数中的回文数(比如:121,131 ,454,616 ),但是我用直 ...
只看楼主 加入收藏
蹴鞠者
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:82
专家分:134
注 册:2016-9-26
结帖率:75%
收藏
已结贴  问题点数:5 回复次数:9 
需要输出所有三位数中的回文数(比如:121,131 ,454,616 ),但是我用直接输出的方法,只能执行一次,不能循环
程序代码:
#include<stdio.h>
void main()
{
    int a=100, m, k=0, sum = 0;
    while( a<200 )
    {
        m = a;
         while(m)
        {
            sum = sum*10 + m%10;
            m = m/10;
        }
        if(sum==a)
        {
            printf("%2d\n", sum);
            k++;
            if(k%10==0)
                printf("\n");
        }
        a++;

    }

}

2016-10-21 18:05
ehszt
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:40
帖 子:1744
专家分:3216
注 册:2015-12-2
收藏
得分:2 
#include<stdio.h>
void main()
 {
     int a=100;
     while( a<1000 )
     {
        if(a/100==a%10)
        printf("%d ",a);
        a++;
     }

 }
2016-10-21 18:13
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
收藏
得分:2 
仅仅是3位数的回文数,效率较高的是两层循环解决,得到100-1000内所有回文数总共循环90次,不经过任何非回文数的判断。
int i,j;
for(i=1;i<10;i++)
{
  for(j=0;j<10;j++)
    if(i!=j)printf("%d ",i*100+j*10+i);;
  printf("\n");
}

能编个毛线衣吗?
2016-10-21 20:51
linlulu001
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:20
帖 子:944
专家分:4047
注 册:2016-4-13
收藏
得分:1 
你的sum没有重置,所以只有一次输出。
2016-10-21 20:59
tremere
Rank: 6Rank: 6
来 自:火星
等 级:侠之大者
帖 子:223
专家分:432
注 册:2013-3-11
收藏
得分:0 
#include<stdio.h>
int main()
{
    int i;
    for(i=101;i<=999;i++)
    {
        if((i/100)==(i%10))
            printf("%d\n",i);
    }
    return 0;
}

极品菜鸟,来学习啦,啦啦啦啦啦啦啦。。。
2016-10-21 22:09
tremere
Rank: 6Rank: 6
来 自:火星
等 级:侠之大者
帖 子:223
专家分:432
注 册:2013-3-11
收藏
得分:0 
为啥你要用个sum?

极品菜鸟,来学习啦,啦啦啦啦啦啦啦。。。
2016-10-21 22:14
百里
Rank: 2
等 级:论坛游民
帖 子:34
专家分:66
注 册:2016-10-1
收藏
得分:0 
同意3楼和4楼的说法。
2016-10-22 11:43
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
新手上路——
把sum=0写进外循环的开始试试,还有,调试程序可以在关键地方输出需要调试的变量值,这样方便找错。
这程序还有一个小问题,就是printf("%2d\n",num);这个\n应该改为空格较为合适。用for循环吧~这样思路比较清晰
    for(sum=0;a<1000;a++,sum=0)
{
    ……
}

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2016-10-22 13:26
蹴鞠者
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:82
专家分:134
注 册:2016-9-26
收藏
得分:0 
回复 6楼 tremere
sum是用来存放倒过来的数字的
2016-10-24 09:18
蹴鞠者
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:82
专家分:134
注 册:2016-9-26
收藏
得分:0 
回复 4楼 linlulu001
2016-10-24 09:20
快速回复:需要输出所有三位数中的回文数(比如:121,131 ,454,616 ),但是我 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015829 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved