0
int main(){
char students[20][20]={
"Ehtisham Hassan",
"Arbab Mushtaq",
"M Yaseen Ayub",
"Qamar Farooq",
"Muhammad Muneeb"
};
char isPresent;
for(int b=0; b<5; b++){
printf("%s\n",students[b]);
scanf("%c\n",&isPresent);
}
return 0;
}
我希望自己的代码是从学生数组中打印一个学生的名字,然后等待用户输入一个字符,但它所做的是打印一名学生的名字,然后存储一个字符然后当循环第二次运行时,它会打印两个学生的名字,然后等待字符输入。谁能说出为什么会发生这种情况带循环inC的字符输入?
这里是我的程序的输出:
Ehtisham Hassan
a
Arbab Mushtaq
M Yaseen Ayub
a
Qamar Farooq
Muhammad Muneeb
a
预期输出:
Ehtisham Hassan
a
Arbab Mushtaq
a
M Yaseen Ayub
a
Qamar Farooq
a
Muhammad Muneeb
a
仔细阅读'scanf' **的文档**。 – Olaf