【发布时间】:2016-04-17 12:48:49
【问题描述】:
我正在制作一个程序,用户输入等级(1 到 5),然后将等级添加到数组中以供以后检查。当用户输入字母“s”时,程序关闭。我的程序在运行时崩溃,为什么?
#include <stdio.h>
#include <stdlib.h>
int i;
int grade[50];
char *num[20];
int enter();
int enter()
{
for (i=0; i<10; i++) {
printf("\nEnter grade:\nPress [s] to close program\n");
scanf("%s",&num[i]);
if (strcmp(num[i],"s") == 0) {
break;
} else {
grade[i] = atoi(num[i]);
}
}
}
int main()
{
enter();
for (i=0; i<10; i++) {
printf("\n%d",grade[i]);
}
return 0;
}
【问题讨论】:
-
再次读取 C 中的 char 数组和字符串。
-
为什么不做整数数组呢?并且您应该初始化数组,因为无论它们是否添加到 enter 方法中,您都会打印 10 个值
-
如果用户(我们不能信任用户,我们可以吗????)输入“S”或“q”或“exit”怎么办? :-)