| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 499 人关注过本帖
标题:菜鸟小弟,求解状!!!
只看楼主 加入收藏
ppli
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2011-11-5
结帖率:0
收藏
已结贴  问题点数:20 回复次数:5 
菜鸟小弟,求解状!!!
如何将一个整数分解,将其每一位间隔三个子符输出,(整数位数不限啊~~~)我是菜鸟,麻烦各位大虾了~不胜感激
搜索更多相关主题的帖子: 如何 不胜感激 
2011-11-05 20:31
pauljames
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:千里冰封
威 望:9
帖 子:1555
专家分:10000
注 册:2011-5-8
收藏
得分:5 
先用整除和取余数分解出各个位,然后用printf来控制输出格式就搞定了

经常不在线不能及时回复短消息,如有c/单片机/运动控制/数据采集等方面的项目难题可加qq1921826084。
2011-11-05 21:00
huanega
Rank: 3Rank: 3
来 自:内蒙古
等 级:论坛游侠
帖 子:117
专家分:192
注 册:2011-11-4
收藏
得分:5 
程序代码:
#include<stdio.h>
#include<conio.h>
void main()
{
    int a,h,i,d;
    printf("请输任意数:\n");
    scanf("%d",&a);
    for(i=1;i<=a;i*10)
        if(a/i==1)
            for(i;i>=1;i/10)
            {
                h=a/i%10;
                printf("   %d",h);
            }
    printf("按任意键退出...");
getch();                                                 
}





现写的,没来的及调试,楼主看下吧,思路应该没问题

兴趣是编程最好的老师
2011-11-05 21:02
superjian
Rank: 2
等 级:论坛游民
帖 子:8
专家分:15
注 册:2011-9-25
收藏
得分:5 
#include<stdio.h>
long power(int base,int n)
{
    int i;
    long p =1;
    for(i = 1; i <= n; ++i)
        p = p * base;
    return p;
}
int main()
{
    long n;
    printf("please input n:(integer)");
    scanf("%d",&n);
    //计算n的位数
    long temp=n;
    int count=0;
    while( temp/10>0 )
    {
     temp = temp/10;
     count++;
    }
    printf("n有%d位数",count+1);
   
    while (count>=0)
    {
          printf("%3d",n/power(10,count));
          n=n%power(10,count);
          count--;
    }
       //   system("pause");
          return 0;
}
这里的想法是先求出输入的整数有多少位(count+1),然后再分别打印出每个位上的数字。程序中power函数是自己写的,也可调用库函数pow(),但要注意其返回值的类型,需要强制类型转换成int。另一种想法是先写一个将整数倒置的函数,然后按要求一位一位输出。
2011-11-05 21:58
luchar
Rank: 9Rank: 9Rank: 9
来 自:南京
等 级:蜘蛛侠
帖 子:279
专家分:1263
注 册:2011-11-3
收藏
得分:5 
我写的,有点复杂,将就这看吧

程序代码:
#include <stdio.h>
#include <math.h>
main()
{
    int a,n=0,i,k,m;
    printf("please input a number a:");
    scanf("%d",&a);
    k=a;
    for(;a>0;a=a/10)  /*计算输入数字的位数n*/
    n++;

    for(i=n-1;i>=0;i--)   /*把输入的数字分解,并按顺序显示在窗口*/
    {
      m=k/pow(10,i);
      k=k%(int)pow(10,i);
        printf("%4d",m);
    }
    printf("\npress anykey to exit...");
    getch();
}
2011-11-05 22:05
superjian
Rank: 2
等 级:论坛游民
帖 子:8
专家分:15
注 册:2011-9-25
收藏
得分:0 
回复 5楼 luchar
图片附件: 游客没有浏览图片的权限,请 登录注册

您的想法和我有些相似,我想请教一下,在用库函数pow()时,即使将其强制转换为int,为什么还会出现上图中的情况,输出有时对,有时不对。这个问题很困惑我,没办法只好自己写了一个power函数。
2011-11-05 22:15
快速回复:菜鸟小弟,求解状!!!
数据加载中...
 
   



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

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