| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 500 人关注过本帖
标题:求热心人帮忙解题
只看楼主 加入收藏
wangchanghao
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2016-10-27
结帖率:0
收藏
已结贴  问题点数:20 回复次数:2 
求热心人帮忙解题
给出一个不多于5位的非负整数,要求
1、求出它是几位数
2、分别输出每一位数字
3、按逆序输出各位数字,例如原数为321,应输出123
2016-10-27 15:56
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:10 
不用字符串处理的话:
#include<stdio.h>
int main()
{
    int i, j, n, m=123, a[5];
    for(i=0; i<5,m!=0; i++,m/=10)
        a[i] = m % 10;
    printf("%d位数\n", i);        
    printf("每一位数字 ");        
    for(j=i-1; j>=0; j--)
        printf("%d ", a[j]);
    printf("\n逆序 ");        
    for(j=0; j<i; j++)
        printf("%d", a[j]);
    return 0;
}
 
2016-10-27 16:53
StadyC
Rank: 6Rank: 6
等 级:侠之大者
威 望:6
帖 子:182
专家分:430
注 册:2016-10-13
收藏
得分:10 
给你个思路吧,代码自己敲敲。
(1)一个巧妙判断几位数的方法:
int i = 12345;   //例如数字是12345
char buf[6];
itoa(i, buf, 10);    //把i以10进制转化成字符串,并存放在buf里面,如果没有itoa库函数,也可以sprintf(buf, "%d", i);
然后strlen(buf)就可以得到该数字是几位数了。

(2)每一位数字的求法:
万位:i / 10000结果就是万位,如:52345 / 10000 = 5;
千位:i % 10000 / 1000结果就是千位,如52345 % 10000 = 2345, 2345 / 1000 = 2;
百位:i % 10000 % 1000 / 100结果就是百位,如52345 % 10000 = 2345, 2345 % 1000 = 345, 345 / 100 = 3;
十位:i % 10000 % 1000 % 100 / 10,如52345 % 10000 = 2345, 2345 % 1000 = 345, 345 % 100 = 45, 45 / 10 = 4;
个位:i % 10000 % 1000 % 100 % 10结果就是个位了。

(3)得到每一位数之后,逆序输出不用说了吧?
2016-10-27 16:55
快速回复:求热心人帮忙解题
数据加载中...
 
   



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

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