這是我的代碼,在這里我每次回圈運行時都會輸入字符。
我提供 5 個輸入,但它只回應其中的 2 個。
#include <stdio.h>
int main()
{
int t;
scanf("%d",&t);
while (t--)
{
char c;
scanf("%c",&c);
if(c =='b' || c== 'B')
printf("BattleShip\n");
else if(c=='c' || c=='C')
printf("Cruiser\n");
else if(c == 'd' || c=='D')
printf("Destroyer\n");
else if(c=='f' || c=='F')
printf("Frigate\n");
}
}
Input:
5
b f c b f
Output:
BattleShip
Frigate
uj5u.com熱心網友回復:
問題在于回圈中的“scanf”功能。字符 %c 識別符號讀取 \n 作為輸入,如果您使用:
scanf("%c", &c)
如果您按如下方式撰寫:
scanf(" %c", &c)
您的問題已解決。
uj5u.com熱心網友回復:
問題是scanf("%c", &c)只讀取一個字符,但是輸入的字母之間有空格,空格也是ascii字符。空格是導致問題的原因,而不是5. 您可以使用scanf(" %c", &c), 前面有一個空格%c,這樣 scanf 會忽略空格和換行符等空白字符,無論它們有多少。即使您在輸入之間放置了許多空格,此解決方案也有效。
uj5u.com熱心網友回復:
您的代碼沒有問題 嘗試任何其他編譯器。有時這種型別的問題會在更改編譯器后解決
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/362960.html
