当前位置: 代码迷 >> C语言 >> {求教]关于如何数字变成字符输出问题...
  详细解决方案

{求教]关于如何数字变成字符输出问题...

热度:164   发布时间:2006-07-25 23:22:24.0
{求教]关于如何数字变成字符输出问题...

我试了好长时间,终于整不明白了...

请教各位:
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);
}


----------------解决方案--------------------------------------------------------
#include<stdio.h>
int main(void)
{
long value;
int i=0;
char ptr[10];
scanf("%ld",&value);
sprintf(ptr,"%ld",value);
while(ptr[i]!=0)
printf("%c ",ptr[i++]);
putchar(10);
}


----------------解决方案--------------------------------------------------------
对这个论坛灰心,以删除,在见。

[此贴子已经被作者于2006-7-31 16:01:14编辑过]


----------------解决方案--------------------------------------------------------
1、如何调用后在main中输出;
2、如何简单的把负号放入字符串中;
3、当输入的n的类型为long long型时,为什么数组中的值都不对,应怎样设置?
问的太幼稚了我只想试一下,,,55555555555幼稚aa
----------------解决方案--------------------------------------------------------
#include<stdio.h>
main()
{
static char a[8];
int num,m,i=8;
scanf("please input the data to be convered:%d",&num);
while(num/10)
{
m=num%10;
a[i--]='0'+m;
a[i--]=' '
num/=10;
}
printf("%s",a);
}



[此贴子已经被作者于2006-7-29 0:32:01编辑过]


----------------解决方案--------------------------------------------------------
提示: 作者被禁止或删除 内容自动屏蔽

2006-07-28 17:52:14
haroldi

等 级:新手上路
帖 子:158
专家分:0
注 册:2006-7-22
  得分:0 
以下是引用穆扬在2006-7-29 1:52:14的发言:
好象有过 类似的讨论
供楼主参考
http://www.bc-cn.net/bbs/dispbbs.asp?boardid=5&replyid=206132&id=75360&page=1&skin=0&Star=1

多谢!学习中...


----------------解决方案--------------------------------------------------------
  相关解决方案