当前位置: 代码迷 >> C语言 >> 为什么这样的数组输不出结果来
  详细解决方案

为什么这样的数组输不出结果来

热度:111   发布时间:2007-04-12 16:29:52.0
为什么这样的数组输不出结果来
main()
{
int a,b=0;
char s[5];

for(a=0;a<5;a++)
{
b++;
s[a]=(char)b;
}

printf("%s",s);
}
搜索更多相关的解决方案: 结果  

----------------解决方案--------------------------------------------------------
main()
{
int a,b=0;
char s[5];

for(a=0;a<5;a++)
{
b++;
s[a]=(char)b;
}

printf("%s",s);
getch(); //可能你是这的问题吧~``程序没有问题..
}


----------------解决方案--------------------------------------------------------

输出来是一些乱七八糟的符号,不是想要的12345


----------------解决方案--------------------------------------------------------

你这样输出的是ASCII码为12345的字符,当然不会是12345了


----------------解决方案--------------------------------------------------------

我写了一个实现类似功能的,随便看看,也不知道楼主是不是这个意思
#include "stdio.h"
#include "stdlib.h"
main()
{
int a,b=0;
char s[5];

for(a=1;a<=5;a++)
{
b=10*b+a; //将12345赋值给int型数b
itoa(b,s,10); //stdlib.h中的itoa函数是用来
//把int型b转化成string型存到s,参数10表示10进制
}

printf("%s\n",s);
}


----------------解决方案--------------------------------------------------------

#include <stdio.h>

void main()
{


int a=0,b=0;
char s[5]="";

for(a=0;a<5;a++)
{
b++;
s[a]=(char) b;
printf("%c\n",s[a]);
}
}


///////////////////////////////////////////
#include <stdio.h>

void main()
{


int a=0,b=0;
int s[5];

for(a=0;a<5;a++)
{
b++;
s[a]=(char) b;
printf("%d\n",s[a]);
}
}

不知道楼主是什么意思!!~~


----------------解决方案--------------------------------------------------------

用(char)b;强制转换后。用%c输出的是ASCII码!而不是数字了
下面printf("%c",s);那s指向的好象是数组s[5]的首地址!!用%d输出的就是数组a[0]的指针了!改成下面的
main()
{
int a,b=0;
char s[5];

for(a=0;a<5;a++)
{
b++;
s[a]=(char)b;
printf("%d",s[a]);
}
return 0;

}


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