最简单的
从键盘输入一个长整数(不超过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;
}