ここで入力として数えて、その数の都市を入力として受け取るコードです。
その文字から始まるすべての都市を印刷したいが、プログラムを終了してから文字を入力する。 しかし、それは文字入力Scanfが入力文字を受け取っていない
#include <stdio.h>
void main()
{
char a[20][10];
char ch;
int i,n;
printf("Enter nos of cities\n");
scanf("%d",&n);
for (i = 0; i < n ; i++)
{
scanf("%s",a[i]);
}
printf("\n");
printf("Enter 1st character\n");
scanf("%c", &ch);
for (i = 0; i < n ; i++)
if(ch==a[i][0])
printf("%s\n",a[i]);
}
ouputを取ることはありません。
Enter nos of cities
3
asd
zxc
qw
Enter 1st character
ありがとうございました問題を研究していないため、 –
-1です。これには重複しているものがたくさんあります。あなたの問題の解決策に加えて、(1) 'void main()'の代わりに標準の 'int main(void)'を使います。 (2) 'n 'が20を超えていないことを確認する。(3)バッファオーバーランを避けるために' scanf'の入力を制限する: '%9s'(4)' scanf'の戻り値を調べる。 –
'line feed in buffer'は新しい 'i ++ + ++ i'です:(( – ThingyWotsit