请问为什么不能用puts输出字符串,用for循环输出就可以呢,还有字符数组为什么用%d输出就是数字,用%c反而达不到目的呢?

#include<stdio.h>
int main()
{
int i;
char a[100];
for(i=0;i<=99;i++)
{
a[i]=i;
}
//for(i=0;i<=99;i++)
//{printf("%d ",a[i]);}
puts(a);

}

1.puts是输出字符串的,字符串是以‘\0’作为结束符的,而字符数组并没有这个结束符。
2.你在往数组a中存储数据是存储的整数,%d就是用来输出整数的,%c是输出字符的,你可以参考一下ASCII码表看下字符对应的整数值