最简单的

从键盘输入一个长整数(不超过10位),从高位开始逐位分割并输出。

Input

正整数n,不含前导零。

Output

分割的整数序列,各整数之间用空格格开。 注意,最后一个数字后面没有空格!

Sample Input

654321

Sample Output

6 5 4 3 2 1

这确实是一个简单题,但下面的代码不能过(10203040愿因未知)想复杂了

#include <stdio.h>
int main()
{
    int a[10],i=0,j,t;
    long long int b;
    scanf("%lld",&b);
    while(1)
    {
        if(b==0)
            break;
        a[i]=b%10;
        b/=10;
        i++;
    }
    for(j=0;j<=i/2;j++)
    {
        t=a[j];
        a[j]=a[i-j-1];
        a[i-j-1]=t;
    }
    printf("%d",a[0]);
    for(j=1;j<i;j++)
        printf(" %d",a[j]);
    return 0;
}

 

下面是正确代码

#include<stdio.h>
#include <string.h>
int main()
{
    char s[100]={'0'};
    int b[100]={0},m;
    int i;
    gets(s);
    m=strlen(s);
    for(i=0;i<m;i++)//注意其中中间不能写s[i],因为遇到(102030)这种情况遇到0就停止了
        b[i]=s[i]-48;
    printf("%d",b[0]);
    for(i=1;i<m;i++)
        printf(" %d",b[i]);
    return 0;
}
原文地址:https://www.cnblogs.com/zcy19990813/p/9702817.html