当试图运行此程序时,仅显示单行输出而不是多行
#include <stdio.h>
int main()
{
int t,i,a;
scanf("%d",&t);
char n[t];
for(i=0;i<t;i++){
scanf("%c",&n[i]);
}
for(i=0;i<t;i++){
if ((n[i]=='b')||(n[i]=='B')) {printf( "BattleShip\n" );}
else if ((n[i]=='c')||(n[i]=='C')) {printf( "Cruiser\n" );}
else if ((n[i]=='d')||(n[i]=='D')) {printf( "Destroyer\n" );}
else if ((n[i]=='f')||(n[i]=='F')) {printf( "Frigate\n" );}
}
return 0;
}
我的输入是
3
B
c
D
我收到的输出是
BattleShip
答案 0 :(得分:2)
scanf("%c", &n[i])
可能会显示'\n'
,n[0]
'\n'
'3'
后n[1]
'B'
n[2]
\n
在'B'
之后是getchar()
。将'\n'
添加到阅读for(i=0;i<t;i++){
getchar(); // <--- read additional '\m'
scanf("%c",&n[i]);
}
可能会解决问题。
strokeStart