我试了好长时间,终于整不明白了...
请教各位:
1、如何在主函数中输出;
2、如何简单的把负号放入数组中;
3、当输入的n的类型为long long型时,为什么数组中的值都不对,应怎样设置?
初学C,请大家多多指教.
//写一函数,输入一个4位数字,
//要求输出4个数字字符,但每两个数字间有一个空格。如输入1990,应输出"1 9 9 0"。
#include <stdio.h>
void n2c1(long);
void n2c2(long,char *);
int main(void)
{
long a;
char ch[81],flag;
printf("Input one number('q'=quit):\n");
while(scanf("%ld",&a)==1)
{
flag=' ';
if(a<0) {flag='-';a=-a;}
printf("The number is: %ld",a);
printf("\n=============1============\nThe string is: ");
printf("%c",flag);
n2c1(a);
printf("\n=============2============\nThe string is: ");
n2c2(a,ch);
puts(ch);
printf("\n\n\nInput one number('q'=quit):\n");
}
}
void n2c1(long n)
{
char c[81],*cp=c;
*cp++=' ';
*cp++=n%10+'0';
n=n/10;
if(n>0) n2c1(n);
*cp='\0';
printf("%s",c);
}
void n2c2(long n,char *ch)
{
*ch++=n%10+'0';
n=n/10;
printf("*ch=%c,n=%ld\n",*ch,n);
// if(n>0) ????
*ch='\0';
}