【发布时间】:2020-05-24 19:12:50
【问题描述】:
char em[] = {'no','yes','maybe','kinda','btw'};
for (int k = 0;k<2;k++){
printf("%c", em[rand()%5+1]);
}
此代码应在输出"no"、"yes"、"maybe"、"kinda" 或"btw" 中打印。但是当我运行它时,它会打印一个字符,例如'o' 或'k' ecc...为什么?
【问题讨论】:
-
多字符常量...而您只使用
"%c"打印一个 -
开始,例如
'no'与"no"... 单引号与双引号。请多花点时间阅读您的课本。 -
em[rand()%5+1]也超出范围。应该是em[rand()%5]。您可以访问索引为0到4的5 元素数组,而不是索引1到5。 -
检查警告通常是一种很好的反应