| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 837 人关注过本帖
标题:论坛里的一个问题,我自己编了个,不知道哪里出错了,帮我看下,谢谢
只看楼主 加入收藏
我叫K
Rank: 2
等 级:论坛游民
帖 子:74
专家分:19
注 册:2015-4-28
结帖率:90.91%
收藏
已结贴  问题点数:20 回复次数:11 
论坛里的一个问题,我自己编了个,不知道哪里出错了,帮我看下,谢谢
我思路是这样的,让它从95860开始,一个个进入,然后呢,把每个位置上的数存入数组,再来判断。
程序代码:
#include"stdio.h"
int main()
{
    int a[5];
    int i,n;
    
    for(n=95860;;n++)
    {
        i=0;
        while(n>10)
        {
            a[i++]=n%10;            
            n=n/10;
        }
        a[i]=n;
        if(a[0]==a[4]&&a[1]==a[3])
        {
             printf("%d%d%d%d%d\n",a[0],a[1],a[2],a[3],a[4]);
             break;
        }
        
    } 
/*我来说下,首先a数组是用来存放每个位上的数的,那个if是用来选数,我们现在就是要
    在95860后面开始找,找到一个数,那个数它是对称相等的,比如95859,以8位分界线
    两边的数对称相等。*/    
    
    
}
2015-05-07 12:07
我叫K
Rank: 2
等 级:论坛游民
帖 子:74
专家分:19
注 册:2015-4-28
收藏
得分:0 

他们和我说,喜欢一个女生要大胆追!
2015-05-07 12:08
我叫K
Rank: 2
等 级:论坛游民
帖 子:74
专家分:19
注 册:2015-4-28
收藏
得分:0 
有时候看着简单的题,去看看也能找到点收获,至少当复习和扫盲了,这类实际问题挺好玩的,看大家都没什么人回答他

他们和我说,喜欢一个女生要大胆追!
2015-05-07 12:09
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9031
专家分:54061
注 册:2011-1-18
收藏
得分:4 
已知对称数n,则求下一个对称数的算法为:将n前半部分加1,然后将前半部分反向复制到后半部分。

比如
95859 的下一个对称数为 95959(958+1=959)
95959 的下一个对称数为 96069(959+1=960)
959959 的下一个对称数为 960069(959+1=960)
2015-05-07 12:54
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:4 
程序代码:
#include<stdio.h>

int su=0;

void resvnum(int k)
{
    if(k==0) return ;
    int n=k % 10;
    k/=10;
    su=su*10+n;
    resvnum(k);
}

int main(void)
{
    int n=95859+1;
    int n_max=n+2*200;  //假定汽车速度不超过200迈
    for(;n<=n_max;n++)
    {
        resvnum(n);
        if(su==n)
        {
            printf("汽车速度可能为 %6d公里/小时  此时里程表显示为%8d \n",(n-95859)/2,n);
        }
        su=0;
    }
    return 0;
}
/*
汽车速度可能为     50公里/小时  此时里程表显示为   95959
汽车速度可能为    105公里/小时  此时里程表显示为   96069
汽车速度可能为    155公里/小时  此时里程表显示为   96169
*/


DO IT YOURSELF !
2015-05-07 14:26
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
收藏
得分:4 
判断回文数都是一些简单基础的编程,为了给初学者算法参考,我还是再写下(以前我写过类似算法,不是判断回文数的),应部分楼主要求我都做了详细注释,代码如下:
程序代码:
#include<stdio.h>
void main()
{
    int i,j,k,n;
    printf("输入当前参考数(Q/q退出):");
    while(scanf("%d",&n))
    {
        for(i=n+1;;i++)  //参考数累加,肯定会累加到最近的下一个回文数
        {
            for(j=i,k=0;j>0;j/=10)k=k*10+j%10;  //本循环通过余数不断*10,得到i的反序数k
            if(k==i)break;  //反序后的数k和原数i相等则可判定该数为回文数,退出累加循环
        }
        printf("汽车速度可能为:(%d-%d)/2=%d公里每小时\n",i,n,(i-n)/2);  //按原文要求输出汽车速度
        printf("输入当前参考数(Q/q退出):");
    }
}

 

能编个毛线衣吗?
2015-05-07 14:58
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9031
专家分:54061
注 册:2011-1-18
收藏
得分:0 
不需要判断是否为回文数,可以根据一个回文数直接求出下一个回文数
程序代码:
#include <stdio.h>

unsigned long foo( unsigned long n )
{
    char t[30];
    int m = sprintf(t,"%u",n) - 1;
    int carry = 1;
    for( int i=m/2; i>=0 && carry!=0; --i )
    {
        carry = (t[i]-'0'+1)/10;
        t[i] = (t[i]-'0'+1)%10 + '0';
        t[m-i] = t[i];
    }
    if( carry )
        return n+2;
    sscanf( t, "%u", &m );
    return m;
}

int main( void )
{
    unsigned long mile = 95859;

    unsigned long nextmile = foo( mile );
    printf( "mile=%lu\tspeed=%.1f\n", nextmile, (nextmile-mile)/2.0 );

    //nextmile = foo( nextmile );
    //printf( "mile=%lu\tspeed=%.1f\n", nextmile, (nextmile-mile)/2.0 );

    //nextmile = foo( nextmile );
    //printf( "mile=%lu\tspeed=%.1f\n", nextmile, (nextmile-mile)/2.0 );

    return 0;
}

2015-05-07 16:10
我叫K
Rank: 2
等 级:论坛游民
帖 子:74
专家分:19
注 册:2015-4-28
收藏
得分:0 
回复 5楼 wp231957
你好 ,我现在不是为这个题而烦恼   而是我写的这个程序   为什么不能调试????   看去好像没有什么地方错,求指教,谢谢

他们和我说,喜欢一个女生要大胆追!
2015-05-07 18:49
我叫K
Rank: 2
等 级:论坛游民
帖 子:74
专家分:19
注 册:2015-4-28
收藏
得分:0 
回复 6楼 wmf2014
你好 ,我现在不是为这个题而烦恼   而是我写的这个程序   为什么不能调试????   看去好像没有什么地方错,求指教,谢谢

他们和我说,喜欢一个女生要大胆追!
2015-05-07 19:12
ityue114
Rank: 2
等 级:论坛游民
帖 子:10
专家分:27
注 册:2014-12-26
收藏
得分:0 
你这程序陷入了一个死循环!
2015-05-07 19:20
快速回复:论坛里的一个问题,我自己编了个,不知道哪里出错了,帮我看下,谢谢
数据加载中...
 
   



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

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