| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4284 人关注过本帖
标题:如何C语言实现输入一个不超过5位数得正数,要求以相反得顺序输出该数。
只看楼主 加入收藏
mklaoyu2
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2009-10-13
结帖率:0
收藏
已结贴  问题点数:20 回复次数:10 
如何C语言实现输入一个不超过5位数得正数,要求以相反得顺序输出该数。
我是一个新手 ,大家帮下 谢谢!
搜索更多相关主题的帖子: 输出 顺序 位数 正数 C语言 
2009-10-13 10:10
MeJustMe
Rank: 1
等 级:新手上路
帖 子:3
专家分:6
注 册:2009-10-13
收藏
得分:2 
>>a
i=a%10;
a/=10;
<<i;
2009-10-13 10:22
sen_lin
Rank: 6Rank: 6
等 级:侠之大者
威 望:3
帖 子:114
专家分:436
注 册:2009-3-24
收藏
得分:2 
对这个数进行求余和除法运算得出这个数的每一位上的数,即可了。不过应该有一个判断这个数是几位数的if语句。
#include "stdio.h"
int fan(long int a ) {
 
        int x[5];
        x[0]=a%10;
 
    if(a/10%10==0) {
 
        printf("%d\n",a);
        return 0;
    }
       x[1]=a/10%10;
       if(a/100%10==0) {
           printf("%d\n",x[0]*10+x[1]);
           return 0;
       }
       x[2]=a/100%10;
       if(a/1000%10==0) {
           printf("%d\n",x[0]*100+x[1]*10+x[0]);
           return 0;
       }
       x[3]=a/1000%10;
       if(a/10000%10==0) {
           printf("%d\n",x[0]*1000+x[1]*100+x[2]*10+x[3]);
           return 0;
       }
       x[4]=a/10000%10;
       if(a/100000%10==0) {
           printf("%d\n",x[0]*10000+x[1]*1000+x[2]*100+x[3]*10+x[4]);
           return 0;
       }
       return 0;
}
void main() {
 
    long int a;
 
    printf("shuru\n");
 
    scanf("%ld",&a);
    fan(a);   
 
}
2009-10-13 12:25
xiaoqing8731
Rank: 2
等 级:论坛游民
帖 子:23
专家分:32
注 册:2009-10-9
收藏
得分:2 
sen_lin的方法有点罗嗦  其实不用判断是几位数
2009-10-13 12:34
godbless
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:1
帖 子:216
专家分:950
注 册:2009-7-24
收藏
得分:2 
贴个比较麻烦的办法..

#include <stdio.h>
#include <string.h>
 
int main()
{
 char str[100];
 int i,Len;
 while(scanf("%s",str)!=EOF)
      {
       Len=strlen(str);
       printf("它是%d位数!\n",Len);
       for(i=Len-1;i>=0;--i)
           putchar(str[i]);
       putchar('\n');
      }
 return 0;
}
2009-10-13 13:04
xiaoqing8731
Rank: 2
等 级:论坛游民
帖 子:23
专家分:32
注 册:2009-10-9
收藏
得分:0 
#include"stdio.h"
#define N  10
void main()
{int i,k,j=0,b[N];
printf("please input your munber:\n");
scanf("%d",&i);
while(i!=0)
{b[j]=i-(i/10)*10;i=i/10;j++;}
for(k=0;k<j;k++)
{printf("%d",b[k]);}
 
 
}
 
 
这个方法就很好   可以是十位数   如果要求更多的话   #define N  10 在这里把10改一下就可以了
2009-10-13 13:08
zhjr5201314
Rank: 4
等 级:业余侠客
帖 子:63
专家分:238
注 册:2009-9-10
收藏
得分:2 
#include<stdio.h>  
void main()  
{  
  int num,n=1;  
  int i,j,m;  
  int count=0;  
  scanf("%d",&num);  
  m=num;  
  while((m=m/10)!=0)  
      n++;  
    for(i=0;i<n;i++)  
    {  
        j=num%10;  
        num=num/10;   
        count+=j;  
         printf("%d",j);  
    }  
        printf("\n");  
        printf("%d",count);        
}
2009-10-13 15:24
m456m654
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:783
专家分:2806
注 册:2009-9-17
收藏
得分:2 
可以借助字符串处理,较为简单:
/* Note:Your choice is C IDE */
#include "stdio.h"
#include "string.h"
void main()
{
    char s[10];
    unsigned int a;
    printf("please input the number:\n");
    scanf("%u",&a);
    sprintf(s,"%u",a);
    printf("%s",strrev(s));     
}
2009-10-13 15:50
yutianshangu
Rank: 2
等 级:论坛游民
帖 子:25
专家分:73
注 册:2008-10-12
收藏
得分:2 
回复 7楼 zhjr5201314
漂亮。
2009-10-13 23:18
贝克街的猫
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2017-11-14
收藏
得分:0 
回复 7楼 zhjr5201314
printf("%d",count);这个count事干啥的?不是只相反顺序打出来就行吗
2017-11-14 20:32
快速回复:如何C语言实现输入一个不超过5位数得正数,要求以相反得顺序输出该数。
数据加载中...
 
   



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

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