关于C中do while 和switch嵌套后的问题

来源:百度知道 编辑:UC知道 时间:2024/06/06 19:41:23
有这样一道题目:键入1,显示J,然后可以再次键入,直到键入q结束,若键入非1非q则显示Error,并重新键入。代码如下:
#include<stdio.h>
int main()
{
char a;
do
{
a=getchar();
switch(a)
{
case '1':printf("J");break;
case 'q':printf("quit");break;
default:printf("Error");
}
}
while('q'!=a);
return 0;
}
为什么有break后还是显示了Error,要完成题目要求,应怎样改啊?谢谢大家了。

#include<stdio.h>
int main()
{
char a;
do
{
a=getchar();
getchar();
switch(a)
{
case '1':printf("J\n");break;
case 'q':printf("quit\n");break;
default:printf("Error\n");break;
}
}
while('q'!=a);
return 0;
}
因为当你输入一个数后你还输入了一个回车,它也是一个字符。。。你这样写就对了。。。






# include<stdio.h>
int main (void)
{  char choice ;
   printf("Are you filing a single , joint,or");
   printf("married return (s,j ,m)?");
   do
   { scanf("%c",&choice); //这里用的是scanf 
  &