|
编译能通过
当输入的数值小于等于5时,输出的结果正确,都是a
当输入大于5时,输出就不对了,而且每次都是第五个元素出错,why?
[code:1]
/*****************************************************
程序目的:看能不能通过键盘的输入来定义一个常量
过程:用const定义一个常量
用这个常量作为一个字符数组的长度
读取键盘的输入,决定这个常量的值
然后给字符数组赋值,为简单起见,每个元素都是字符'a'
最后输出这个数组,查看结果
*****************************************************/
#include <stdio.h>
const int MAX; /*定义一个名为MAX的常量*/
int main()
{
char string[MAX]; /*将MAX作为一个字符数组的长度*/
char line[100];
int i;
printf("Please input a number:"); /*提示输入一个整数,这个整数将赋给MAX*/
fgets(line,sizeof(line),stdin);
sscanf(line,"%d",&MAX); /*给MAX赋值*/
printf("the MAX is %d\n",MAX); /*添加一行输出,查看赋值是否成功*/
for(i=0;i<(MAX-1);i++)
{
string[i]='a';
printf("%c\n",string[i]);
}
string[(MAX-1)]='\0'; /*给字符数组加一个结束的标志*/
printf("the string is %s\n",string); /*输出这个数组*/
return(0);
}
[/code:1] |
|