| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 15830 人关注过本帖
标题:用C语言拆分任意一个整数?
只看楼主 加入收藏
lee_2008
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2008-7-29
收藏
 问题点数:0 回复次数:23 
用C语言拆分任意一个整数?
我想用C语言写一个程序,输入任意整数,然后把这个整数的每一位都拆开再输出。
比如
输入:123456
输出:1、2、3、4、5、6
我是这样想的。
869/100=8
69/10=6
9/10=9
我的代码是这样写的。
#include <stdio.h>
int main(void)
{
int bai_wei,shi_wei,ge_wei;
bai_wei=869/10/10;
shi_wei=869/10%10;
ge_wei=869%10;
printf("%d %d %d",bai_wei,shi_wei,ge_wei);
return 0;
}

因为需要检查输入的数字的位数,所以我写的这个程序只能求出3位的整数,要是多于3位的就不正确了。
要想实现任意数的拆分应该如何改程序?

[[it] 本帖最后由 lee_2008 于 2008-7-29 13:11 编辑 [/it]]
搜索更多相关主题的帖子: C语言 整数 拆分 
2008-07-29 13:08
独孤小梦
Rank: 1
等 级:新手上路
威 望:1
帖 子:338
专家分:0
注 册:2008-6-5
收藏
得分:0 
我我给你改改!
比如我们输入5位数:
int a,b,c,d,e,x;
scanf("%d",&x);
a=x/10000;/*分解出万位*/
b=x%10000/1000;/*分解出千位*/
c=x%1000/100;/*分解出百位*/
d=x%100/10;/*分解出十位*/
e=x%10;/*分解出个位*/

你自己在纸上好好算下!

编程小菜
2008-07-29 13:16
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
char num[100],*pt=num;
scanf("%s",num);
while(*pt)printf("%c ",*pt++);

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-07-29 13:27
lee_2008
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2008-7-29
收藏
得分:0 
回复 2# 独孤小梦 的帖子
恩.但这只能算5位数,程序比较死板,如果输入3位数还得重新修改程序.
 这样的程序我想没人愿意用.
如何让程序支持任意输入的整数(且整数位数是不固定的).
是不是不好实现呀...我现在还想不出来...
2008-07-29 13:31
lee_2008
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2008-7-29
收藏
得分:0 
回复 3# StarWing83 的帖子
谢了你的程序不错,但是我还没到字符串和指针呢.
就学到了循环,如果不用字符串和指针能实现吗?
2008-07-29 13:33
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
#include <stdio.h>

int main()
{
    char str[50]={0};
    int num,i=48;
    scanf("%d",&num);
    while (num)
    {
        str[i--]='0'+num%10;
        str[i--]=' ';
        num/=10;
    }
    printf("%s\n",&str[i+2]);
    return 0;
}

无指针的版本,那个字符数组纯粹当栈使用的……不过,既然有简单的办法(字符串+指针),那何必要用复杂的办法呢?

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-07-29 13:58
lee_2008
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2008-7-29
收藏
得分:0 
恩.你说的对.简单的更容易理解...
2008-07-29 14:03
独孤小梦
Rank: 1
等 级:新手上路
威 望:1
帖 子:338
专家分:0
注 册:2008-6-5
收藏
得分:0 
呵呵,LZ说的对!
我也是新手,不会写复杂的程序,需要努力了!

编程小菜
2008-07-29 14:07
lee_2008
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2008-7-29
收藏
得分:0 
char num[100],*pt=num;\\num[100]是数组的长度为100,指针PT的地址指向num
scanf("%s",num);
while(*pt)printf("%c ",*pt++);
是不是把数字转换成字符串了.
2008-07-29 14:10
lee_2008
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2008-7-29
收藏
得分:0 
回复 8# 独孤小梦 的帖子
呵呵..一起努力....路上有你和我..
2008-07-29 14:11
快速回复:用C语言拆分任意一个整数?
数据加载中...
 
   



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

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