c语言 输入一个四位数,输出一个4位数,每两个数字间空一个空格,请改错,谢谢啦

#include <stdio.h>
#include <string.h>

void main()
{
void fac(char a[4]);
int x;
char a[4];
printf("请输入一个四位数:\n");
gets(a[4]);
fac(a[4]);
printf("%d %d %d %d",a,b,c,d);

}
void fac(char a[4])
{
int a,b,c,d;
char a[4];
m=a[4];
a=m/1000;
b=m%100%10
c=(m/10)%10;
d=m%10;

}

#include <stdio.h>

 #include <string.h>

void main()

 {

      void fac(char a[4]);

      int x;

   char a[4];

      printf("请输入一个四位数:\n");

      gets(a);//输入时应这样

      fac(a);//调用时也应这样

}

void fac(char a[4])

{

  printf("%d %d %d %d\n",a[0]-'0',a[1]-'0',a[2]-'0',a[3]-'0'); //注意要把字符转化成数字

}

追问

为啥不在主函数中输出呢?如果主函数输出的话应该怎么写呢

追答

可以的 这样就可以了 其实被调用函数只有输出的功能
#include
#include
void main()
{
char a[4];
printf("请输入一个四位数:\n");
gets(a);//输入时应这样
printf("%d %d %d %d\n",a[0]-'0',a[1]-'0',a[2]-'0',a[3]-'0'); //注意要把字符转化成数字
}

你写的那个应该是用来输入一个四位数(不是用数组输入)的然后再把个位 十位 百位 千位 分开 然后再输出
但被调用函数不能同时返回4个数
你要的话我可以给你写一个

追问

恩恩 谢谢你,给我写个吧,我很想学这个c语言,不过一个人学有点困难

追答

#include <stdio.h>

 #include <string.h>

void main()

 {

void fac(int x);

      int x;

      printf("请输入一个四位数:\n");

 scanf("%d",&x);

      fac(x);


}

    void fac(int x)

    {

        int a,b,c,d,m;

        m=x;

        a=m/1000;

        b=m/100%10;

        c=(m/10)%10;

        d=m%10;

printf("%d %d %d %d\n",a,b,c,d);


    }//这个应该是你想写的

//如果你愿意的话你给个Q吧  以后可以一起探讨 相互学习

追问

好的,qq是多少呢?

追答

我发私信给你

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-05-01
#include <stdio.h>
#include <stdlib.h>

void main()
{

char str[4];
int i,a,b,c,d;

printf("ÇëÊäÈëÒ»¸öËÄλÊý:\n");
gets(str);
i=atoi(str);
a=i/1000;
b=i%100%10;
c=(i/10)%10;
d=i%10;
printf("%d %d %d %d",a,b,c,d);

}
不得不说你代码编写的太乱了,字符变量不能直接用于计算的先要转变为整型变量

好吧,看了大神们的解答感觉自己是来打酱油~~
第2个回答  2013-05-01
其实用不着那么麻烦的,请参考如下思路:
int x,n[4];
printf("请输入一个四位数:");
scanf("%d",&x);
n[3]=x%10; x/=10;
n[2]=x%10; x/=10;
n[1]=x%10; x/=10;
n[0]=x%10;
printf("%d %d %d %d\n",n[0],n[1],n[2],n[3]);
第3个回答  推荐于2018-04-21
fac(a[4]);
删去这行 //printf("%d %d %d %d",a,b,c,d);

void fac(char a[4])
{
printf("%c %c %c %c",a[0],a[1],a[2],a[3]);
}

这题你想要有多麻烦?本回答被网友采纳