| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4069 人关注过本帖
标题:输入整数输出逆序数
只看楼主 加入收藏
fuliewen
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2007-7-9
收藏
得分:0 
回复 10# 的帖子
#include<stdio.h>
void main()
{
    int x,n,a,b,c,d;
    printf("please input x:");
    scanf("%d",&x);
    if(x>=10000)
        printf("输入x超过5位数:");
    else
    {
        if(!(x/10))
        {
            n=1;
            printf("x为%d位数\n",n);
            printf("x的各位数为__%d\n",x);
            printf("x的逆序数为:%d\n",x);
        }
        else if(!(x/100))
        {
            n=2;
            printf("x为%d位数\n",n);
            printf("x的各位数为__%d__%d\n",x/10,x%10);
            printf("x的逆序数为:%d%d\n",a=x%10,b=x/10);
        }
        else if(!(x/1000))
        {
            n=3;
            printf("x为%d位数\n",n);
            printf("x的各位数为__%d__%d__%d\n",x/100,x%100/10,x%10);
            printf("x的逆序数为:%d%d%d\n",a=x%10,b=x%100/10,c=x/100);
        }
        else
        {
            n=4;
            printf("x为%d位数\n",n);
            printf("x的各位数为__%d__%d__%d__%d\n",x/1000,x%1000/100,x%100/10,x%10);
            printf("x的逆序数为:%d%d%d%d\n",a=x%10,b=x%100/10,c=x%1000/100,d=x/1000);
        }
    }
}
这是我总结大家的后,自己重新编写了一便。你们给点意见。。看看这样行不行
2008-04-04 21:34
moonwalker
Rank: 1
等 级:新手上路
威 望:1
帖 子:909
专家分:2
注 册:2007-3-2
收藏
得分:0 
恭喜,从你的代码可以看出你已经明白了,
不过你可以再考虑能不能改进
比如,你根据输入数的位数不同,每种情况都用一段代码实现
可是如果输入是个100位数,你的代码该怎么写?

我刚学的时候,就是开始用最笨的方法先实现要求,然后再一点一点改
找找能否用别的方法实现,能让代码更短,更健壮
希望能对你有帮助

“视频教程网”免费提供教学资源
C不限制你的自由!
条件是自己承担滥用自由的恶果!
2008-04-04 21:51
fuliewen
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2007-7-9
收藏
得分:0 
回复 12# 的帖子
哦,我现在也是有这种思维。。就是编写一个普通的程序,然后就想到把它扩充到无限的情况,也就是任意的情况。谢谢你的指点。。非常受益啊。
哦。还有一个问题想请教你,就是在TC 2.0和VC++6.0上编写的程序是不一样的吗??
2008-04-04 21:59
江湖无痕
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2008-4-4
收藏
得分:0 
这里我用链表做的:我的位数是20;
#include <stdio.h>
#include <malloc.h>
//
struct str
{
    char    a;
    struct str * next;
};


void main()
{
    struct str    * head,* gain,* move;
    char        b[20],* p;
    
    scanf("%s",b);

    //建立头结点;
    p=b;
    head        =(struct str * ) malloc(sizeof(struct str));
    move        =head;
    move->next    =NULL;
    gain        =NULL;

    //开始核心;
    while(* p!='\0')
    {
    gain        =(struct str * ) malloc(sizeof(struct str));
    gain->a        =*p;
    gain->next    =move;
    move        =gain;
    p++;
    }
    
    //输出;
    while(move->next!=NULL)
    {
        printf("%c",move->a);
        move    =move->next;
    }
}
2008-04-04 22:00
moonwalker
Rank: 1
等 级:新手上路
威 望:1
帖 子:909
专家分:2
注 册:2007-3-2
收藏
得分:0 
回复 13# 的帖子
写的代码是没有太大区别的,可是编译器不一样
tc2是K&R C 标准,VC支持大部分的C99标准
所以你编译通过的代码,在另外一个编译器可能会报错,
不过为了保证移植性,尽量还是用C99标准写代码

“视频教程网”免费提供教学资源
C不限制你的自由!
条件是自己承担滥用自由的恶果!
2008-04-04 22:12
冰燃
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2008-2-23
收藏
得分:0 
#include<stdio.h>
#define PT printf
void main()
{
 long a;
 int n,b,c,d,e,f;
 PT("please input a number(0~99999)");
 scanf("%ld",&a);
 if(a>9999)
 n=5;
 else if(a>999)
 n=4;
 else if(a>99)
 n=3;
 else if(a>9)
 n=2;
 else
 n=1;
 PT("wei shu shi %d\n",n);
 b=a/10000;
 PT("wan wei shi %d\n",b);
 c=a/1000-b*10;
 PT("qian wei shu shi %d\n",c);
 d=a/100-b*100-c*10;
 PT("bai wei shu shi %d\n",d);
 e=a/10-b*1000-c*100-d*10;
 PT("shi wei shu shi %d\n",e);
 f=a-b*10000-c*1000-d*100-e*10;
 PT("ge wei shu shi %d\n",f);
 switch(n)
 {case 5:PT("fan wei shu shi ");
 PT("%d%d%d%d%d\n",f,e,d,c,b);break;
 case 4:PT("fan wei shu shi ");
 PT("%d%d%d%d\n",f,e,d,c);break;
 case 3:PT("fan wei shu shi ");
 PT("%d%d%d",f,e,d);break;
 case 2:PT("fan wei shu shi ");
 PT("%d%d",f,e);break;
 case 1:PT("%d",f);break;}
 getch();}
有点麻烦但是通过了
顶孔明
2008-04-05 00:43
fuliewen
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2007-7-9
收藏
得分:0 
回复 14# 的帖子
厉害,你数据结构应该学得不错啊
2008-04-05 11:54
fuliewen
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2007-7-9
收藏
得分:0 
回复 16# 的帖子
是有点麻烦了。不过能自己写出也不错啊。
2008-04-05 11:55
fuliewen
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2007-7-9
收藏
得分:0 
回复 15# 的帖子
我#include<stdio.h>在TC 2.0上运行是错的,TC 2.0上不包含这个头文件吗??
能不能给我写个简单的输出程序,就在TC 2.0上能运行的。。谢谢了
2008-04-05 11:59
采书大盗
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2008-4-5
收藏
得分:0 
14楼和16楼的好复杂啊……

只是一个菜鸟而已~没什么~真的!
2008-04-05 13:49
快速回复:输入整数输出逆序数
数据加载中...
 
   



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

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