好象有过 类似的讨论
供楼主参考
http://www.bc-cn.net/bbs/dispbbs.asp?boardid=5&replyid=206132&id=75360&page=1&skin=0&Star=1
多谢!学习中...
----------------解决方案--------------------------------------------------------
我试了好长时间,终于整不明白了...
请教各位:
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';
}
#include<stdio.h>
int main(void)
{
long value,instead;
int count=0,i;
scanf("%ld",&value);
if(value<0) printf("- "),value=-value;
instead=value;
while(instead)
{
instead/=10;
count++;
}
while(count--)
{
for(i=0,instead=1;(i<count)&&(instead*=10);i++);
printf("%c ",value/instead%10+48);
}
putchar(10);
}
[此贴子已经被作者于2006-7-31 16:01:14编辑过]
[此贴子已经被作者于2006-7-29 0:32:01编辑过]
多谢!学习中...