一个C语言程序,输入任意整数,将他的每一位拆成一个单独的数,三位数可以,但是4位数的输出结果总少1

一个C语言程序,输入任意整数,将他的每一位拆成一个单独的数,三位数可以,但是4位数的输出结果总少1求大佬指导

第1个回答  2017-09-22
#include <stdio.h>#include <string.h>

int main(int argc, char *argv[])
{
    int a;
    char s[4];
    printf("Input Number\n");
    scanf("%d",&a);
    sprintf(s, "%d", a);
    printf("%c\n",s[0]);
    printf("%c\n",s[1]);
    printf("%c\n",s[2]);
    printf("%c\n",s[3]);
    return 0;
}

追问

这是什么意思?

这是重新构造了一个函数吗?

第2个回答  2017-09-22
#include<stdio.h>
void main() { int a,b,n,k,i;
  while ( 1 ) {
    scanf("%d",&a); if ( a==0 ) break;
    n=0; b=a; k=1; while ( b ) { n++; b/=10; k*=10; }
    k/=10; for ( i=0;i<n;i++,k/=10 ) { printf("%d ",a/k); a%=k; }
    printf("\n------------\n");
  }
}

本回答被提问者和网友采纳
第3个回答  2017-09-22
把long改成int试试呢追问

好像没用