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