【发布时间】:2017-04-16 12:54:18
【问题描述】:
这是我的代码,它将计数作为输入,然后将城市数量作为输入。
我想打印从该字母开始的所有城市,但程序在将字符作为输入之前结束。
但它不需要字符输入
#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]);
}
输出:
Enter nos of cities
3
asd
zxc
qw
Enter 1st character
【问题讨论】:
-
谢谢解答
-
-1 表示没有研究问题。 SO上有很多重复的这个。除了解决您的问题之外,(1)使用标准
int main(void)而不是void main()。 (2) 检查n是否不大于20。 (3) 限制scanf的输入以避免缓冲区溢出:%9s(4) 检查scanf的返回值。 -
'缓冲区换行'是新的'i++ + ++i' :((
标签: c