写一个函数,输入一个4位数字,要求输出这4个数字字符,但每两个数字间空一个空格.如输入1990变成1 9 9 0

问题描述:

写一个函数,输入一个4位数字,要求输出这4个数字字符,但每两个数字间空一个空格.如输入1990变成1 9 9 0
#include
#include
main()
{
void f(char a[ ],char b[ ]);
char c1[80],c2[80];
gets(c1);
f(c1,c2);
puts(c2);
}
void f(char a[ ],char b[ ])
{
int i,j;
for(i=2,j=0;a[i-2]!='\0';i++);
if(i==2) b[i-2]=a[j];
else if(i%2==0) {j++; b[i-2]=a[j];}
else b[i-2]=' ';
b[i-2]='\0';
}
帮忙看看哪错了

#include
#include
void f(char *a,char *b)
{
int i,j;
for(i=0,j=0;a[i]!='\0';i++)
{
b[++j]=a[i];
b[++j]=' ';
}
b[j]='\0';
}
main()
{
char c1[80],c2[80];
gets(c1);
f(c1,c2);
puts(c2);
}
你的错误是在这里for(i=2,j=0;a[i-2]!='\0';i++); 后面多了一个分号,
这里的算法我没有仔细斟酌,不知道对错,给你改一下,你看看我的,呵呵