字符运算问题
发布网友
发布时间:2023-04-08 20:57
我来回答
共3个回答
热心网友
时间:2024-12-04 03:47
是这样的,假如你输入一个y然后按回车,程序的缓冲区里面有两个字符,一个是‘y’一个是‘回车符’,第一次判断把‘y’赋给了变量x,第一次判断的结果是真,然后把那个‘回车符’在第二次判断的时候赋给了x,x的值不是‘y’,所以第二次判断为假,程序就结束了。由于运行很快,你看不清结果就没了。
代码改了一下,每次输入字符的时候这样处理:
scanf ("%c %*c", &x);
这个过程是读入一个字符,赋给x,然后读入一个字符,不赋给任何变量,这样就让%*c把每次输入多出来的那个‘回车符’吃掉了,就能得到正确结果了。如果程序来不及观看运算结果就结束了,可以在最后加几个getchar();
void main()
{
char x, y, n; /*这里的y和n貌似没什么用*/
printf("Do you have Experience with C ? Press y/n");
scanf("%c%*c",&x);
if(x == 'y' || x == 'Y') printf("Do you bachelor degree ? Press y/n");/*判断要用==,=只是赋值,字符常量应该用单引号括起来,要考虑输入可能是大写Y的情况。*/
{
scanf ("%c%*c", &x);/*每判断完一条,应该重新读入一个字符。*/
if(x == 'y' || x == 'Y') printf("Do you less than 30 ? Press y/n");
{
scanf ("%c%*c",&x);
if(y=x) printf("Wellcome join us!");
else printf(" We are so sorry to tell you....");
}
else printf("We are so sorry to tell you ....");
}
else printf(" We are so sorry to tell you.....");
getchar ();
}
大致就是这点问题,祝你好好学习,天天向上。
热心网友
时间:2024-12-04 03:48
程序中的if(y=x)这些错误,C语言中比较实用if('y'==x),我想y这个变量应该是赋初始值的,应该是y='y',要不然这也是一个错误。
热心网友
时间:2024-12-04 03:48
#include<stdio.h>
void main()
{
char a;
printf("Do you have Experience with C ? Press y/n");
scanf("%c",&a);
if(a=='y'||a=='Y')
{
printf("Do you bachelor degree ? Press y/n");
scanf("%c",&a);
if(a=='y'|| a=='Y')
{
printf("Do you less than 30 ? Press y/n");
scanf("%c",&a);
if(a=='y'|| a=='Y')
printf("Wellcome join us!");
else
printf(" We are so sorry to tell you....");
}
else printf("We are so sorry to tell you ....");
}
else printf(" We are so sorry to tell you.....");
}