我正在做一个练习,打印从用户处获取的 3 个字母。前两个字母最终效果很好,但最后一个字母始终是用户因某种原因输入的字母(我尝试了几种不同的输入组合,但结果始终相同):
#include <stdio.h>
int main(){
char userChar[3];
int i;
for (i = 1; i <= 3; i++){
printf("Enter letter %d\n", i);
scanf(" %c", &userChar[i]);
}
printf("%c %c %c", userChar[1], userChar[2], userChar[3]);
return 0;
}
输入为:abc 输出为:abd
我搞砸了什么?感谢您的帮助!
编辑进行了建议的更改,但仍然不起作用
最佳答案
我将将此作为答案发布,只是为了澄清修正案
#include <stdio.h>
int main(){
char userChar[3];
int i;
for (i = 0; i < 3; i++){ // the loop range
printf("Enter letter %d\n", i + 1); // for human use
scanf(" %c", &userChar[i]);
}
printf("%c %c %c", userChar[0], userChar[1], userChar[2]); // the array indexing
return 0;
}
节目环节
Enter letter 1
a
Enter letter 2
b
Enter letter 3
c
a b c
关于c - 由于某种原因最后一个字母是输入+1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58752769/