你if条件句中的条件是错误的,我给你分析下:
就那第一个if语句中的“x==(x<60)”条件来说,当你从键盘输入60的时候,那么x=54,x<60是对的,所以x<60的整体值就为1,这时在进行x==1判断,因为x=60所以这个判断式为假,整体值就为0,也就是不进行第一个if语句中y=0运算,这样变量y只是定义了,但是没有初始化,所以编译器给变量y一个未知的值,所以当你从键盘输入54的时候,printf语句输出的变量y的值就不再是0,而是计算机内部一个未知的值。
正确的代码如下(也可以通过switch语句实现同样的功能,而且更简洁):
#include"stdio.h"
void main()
{
int x;
int y;
scanf("%d",&x);
if (x<60)
{
y=0;
}
if(x>=60&&x<70)
{
y=1;
}
if(x>=70&&x<80)
{
y=2;
}
if(x>=80&&x<90)
{
y=3;
}
if(x>=90)
{
y=4;
}
printf("%d",y);
}
你那程序本身就有错误。
改正后如下:
#include"stdio.h"
void main()
{
int x;
int y;
scanf("%d",&x);
if (x<60)
{
y=0;
}
if(x>=60&&x<70)
{
y=1;
}
if(x>=70&&x<80)
{
y=2;
}
if(x>=80&&x<90)
{
y=3;
}
if(x>=90)
{
y=4;
}
printf("%d",y);
}
securecrt乱码怎么办
#include
void main()
{
int x;
int y;
scanf("%d", &x);
if(x < 60)
y = 0;
else if(x >= 60 && x < 70)
y = 1;
else if(x >= 70 && x < 80)
y = 2;
else if(x >= 80 && x < 90)
y = 3;
else if(x >= 90)
y = 4;
printf("%d\n", y);
}
#include
#include
main()
{
int x;
int y;
scanf("%d",&x);
if (x<60)
y=0;
if(x>=60&&x<70)
y=1;
if(x>=70&&x<80)
y=2;
if(x>=80&&x<90)
y=3;
if(x>=90);
y=4;
printf("%d",&y);
}