标题:编写程序,对输入的一个整数,从高位开始逐位分割并输出它的各位数字
只看楼主
kara凡
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2017-4-24
 问题点数:0 回复次数:6 
编写程序,对输入的一个整数,从高位开始逐位分割并输出它的各位数字
本题要求编写程序,对输入的一个整数,从高位开始逐位分割并输出它的各位数字。
输入格式:
输入在一行中给出一个长整型范围内的非负整数。
输出格式:
从高位开始逐位输出该整数的各位数字,每个数字后面有一个空格。
输入样例:
123456
输出样例:

1 2 3 4 5 6

#include<stdio.h>
#include<math.h>
int main() {
    int i=0,a;
    double x;
    scanf("%lf",&x);
    if(x>=0)
        while(x>=10) {
            x=x/10;
            i=i+1;
        }
    printf("%.0f ",x);
    while(i>0) {
        a=floor(x);
        i=i-1;
        x=x*10-a*10;
        printf("%.0f ",x);
    }
    return 0;
}
请问为什么错了。
搜索更多相关主题的帖子: 编写程序 include double 
2017-04-24 11:16
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
得分:0 
没有调试,但差不多就是这样了。
程序代码:
#include <stdio.h>

int
main( void )
{
    int N, t;
    int power;

    scanf( "%d",&N );

    for( power = 1, t = N; 1 < t; t /= 10 )
        power *= 10;
    for( ; 0 < N; power /= 10 )
    {
        t = N / power;
        N %= power;
        printf( "%d ", t );
    }
    return 0;
}


 

[此贴子已经被作者于2017-4-24 13:05编辑过]


09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-04-24 12:03
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
回复 2楼 renkejun1942
输入 000123 就惨了
2017-04-24 12:48
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
得分:0 
回复 3楼 rjsp
哈哈,用直觉想到的最简单的实现办法。

修改了代码,现在应该可以正常运作了。

09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-04-24 13:09
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
输入要求是一个整数
2017-04-24 14:44
平平小黄
Rank: 2
等 级:论坛游民
帖 子:15
专家分:28
注 册:2016-9-27
得分:0 
#include<stdio.h>
#include<math.h>
int main() {
    int i=1,a,n;
    long x,y;
    scanf("%ld",&x);
    y=x;
    if(x>0)
    {
        while(x)//循环出x的位数
        {
            x=x/10;
            i*=10;
        }
        for(i=i/10;i>0;i/=10)//依次取出x的各位数
            {
                printf("%d ",n=y/i);
                y=y-n*i;

            }

    }



    return 0;
}
还有要求输入的是长整数必须用long,double 的话你除10就不是整除了 会有分数。
2017-04-24 23:08
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
得分:0 
可以这样~
程序代码:
#include<stdio.h>
int main()
{
    int n=0;
    char s[12]={0};
    char* p=s;

    scanf("%d",&n);

    itoa(n,s,10);

    while (*p)
        printf("%c ",*p++);

    puts("");

    return 0;
}


[此贴子已经被作者于2017-4-24 23:47编辑过]


[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-04-24 23:45



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-476383-1-1.html




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

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