求C语言大神解答一下。为什么输入任何数字的时候都是输出A,该如何改?
发布网友
发布时间:2022-05-07 17:32
我来回答
共4个回答
热心网友
时间:2023-11-07 12:44
明显是A啊。
你的第一个循环,大于90的进入第一个循环,但是循环里面碰到第一个小循环却要小与90,
那么进入循环的必然跳出循环,没进入循环的本来就在外面,最外面的那个case就是输出A
的啊。
热心网友
时间:2023-11-07 12:45
前面if嵌套不对。修改如下
#include<stdio.h>
int main()
{
float x;
int leap;
scanf("%f",&x);
if(x<90)
{
if(x<80)
{
if(x<70)
{
if(x<60)
{
leap=1;
}else leap=2;
}else leap=3;
}else leap=4;
}else leap=5;
switch(leap)
{case 1:printf("you grade is:E");break;
case 2:printf("you grade is:D");break;
case 3:printf("you grade is:C");break;
case 4:printf("you grade is:B");break;
case 5:printf("you grade is:A");break;
}
return 0;
}
热心网友
时间:2023-11-07 12:45
判据太乱!
大于90执行嵌套判断,里面的没一个能成立。leap 要么是5,要么没变。
热心网友
时间:2023-11-07 12:46
if(x>=90)
{
if(x>=80&&x<90)
{
if(x>=70&&x<80)
{
if(x>=60&&x<70)
{
if(x<60)
leap=1;
}else leap=2;
}else leap=3;
}else leap=4;
}else leap=5;
这里有逻辑错误!
热心网友
时间:2023-11-07 12:44
明显是A啊。
你的第一个循环,大于90的进入第一个循环,但是循环里面碰到第一个小循环却要小与90,
那么进入循环的必然跳出循环,没进入循环的本来就在外面,最外面的那个case就是输出A
的啊。
热心网友
时间:2023-11-07 12:45
前面if嵌套不对。修改如下
#include<stdio.h>
int main()
{
float x;
int leap;
scanf("%f",&x);
if(x<90)
{
if(x<80)
{
if(x<70)
{
if(x<60)
{
leap=1;
}else leap=2;
}else leap=3;
}else leap=4;
}else leap=5;
switch(leap)
{case 1:printf("you grade is:E");break;
case 2:printf("you grade is:D");break;
case 3:printf("you grade is:C");break;
case 4:printf("you grade is:B");break;
case 5:printf("you grade is:A");break;
}
return 0;
}
热心网友
时间:2023-11-07 12:45
判据太乱!
大于90执行嵌套判断,里面的没一个能成立。leap 要么是5,要么没变。
热心网友
时间:2023-11-07 12:46
if(x>=90)
{
if(x>=80&&x<90)
{
if(x>=70&&x<80)
{
if(x>=60&&x<70)
{
if(x<60)
leap=1;
}else leap=2;
}else leap=3;
}else leap=4;
}else leap=5;
这里有逻辑错误!
热心网友
时间:2023-11-07 12:44
明显是A啊。
你的第一个循环,大于90的进入第一个循环,但是循环里面碰到第一个小循环却要小与90,
那么进入循环的必然跳出循环,没进入循环的本来就在外面,最外面的那个case就是输出A
的啊。
热心网友
时间:2023-11-07 12:45
前面if嵌套不对。修改如下
#include<stdio.h>
int main()
{
float x;
int leap;
scanf("%f",&x);
if(x<90)
{
if(x<80)
{
if(x<70)
{
if(x<60)
{
leap=1;
}else leap=2;
}else leap=3;
}else leap=4;
}else leap=5;
switch(leap)
{case 1:printf("you grade is:E");break;
case 2:printf("you grade is:D");break;
case 3:printf("you grade is:C");break;
case 4:printf("you grade is:B");break;
case 5:printf("you grade is:A");break;
}
return 0;
}
热心网友
时间:2023-11-07 12:44
明显是A啊。
你的第一个循环,大于90的进入第一个循环,但是循环里面碰到第一个小循环却要小与90,
那么进入循环的必然跳出循环,没进入循环的本来就在外面,最外面的那个case就是输出A
的啊。
热心网友
时间:2023-11-07 12:45
判据太乱!
大于90执行嵌套判断,里面的没一个能成立。leap 要么是5,要么没变。
热心网友
时间:2023-11-07 12:46
if(x>=90)
{
if(x>=80&&x<90)
{
if(x>=70&&x<80)
{
if(x>=60&&x<70)
{
if(x<60)
leap=1;
}else leap=2;
}else leap=3;
}else leap=4;
}else leap=5;
这里有逻辑错误!
热心网友
时间:2023-11-07 12:44
明显是A啊。
你的第一个循环,大于90的进入第一个循环,但是循环里面碰到第一个小循环却要小与90,
那么进入循环的必然跳出循环,没进入循环的本来就在外面,最外面的那个case就是输出A
的啊。
热心网友
时间:2023-11-07 12:45
前面if嵌套不对。修改如下
#include<stdio.h>
int main()
{
float x;
int leap;
scanf("%f",&x);
if(x<90)
{
if(x<80)
{
if(x<70)
{
if(x<60)
{
leap=1;
}else leap=2;
}else leap=3;
}else leap=4;
}else leap=5;
switch(leap)
{case 1:printf("you grade is:E");break;
case 2:printf("you grade is:D");break;
case 3:printf("you grade is:C");break;
case 4:printf("you grade is:B");break;
case 5:printf("you grade is:A");break;
}
return 0;
}
热心网友
时间:2023-11-07 12:45
判据太乱!
大于90执行嵌套判断,里面的没一个能成立。leap 要么是5,要么没变。
热心网友
时间:2023-11-07 12:46
if(x>=90)
{
if(x>=80&&x<90)
{
if(x>=70&&x<80)
{
if(x>=60&&x<70)
{
if(x<60)
leap=1;
}else leap=2;
}else leap=3;
}else leap=4;
}else leap=5;
这里有逻辑错误!
热心网友
时间:2023-11-07 12:44
明显是A啊。
你的第一个循环,大于90的进入第一个循环,但是循环里面碰到第一个小循环却要小与90,
那么进入循环的必然跳出循环,没进入循环的本来就在外面,最外面的那个case就是输出A
的啊。
热心网友
时间:2023-11-07 12:44
明显是A啊。
你的第一个循环,大于90的进入第一个循环,但是循环里面碰到第一个小循环却要小与90,
那么进入循环的必然跳出循环,没进入循环的本来就在外面,最外面的那个case就是输出A
的啊。
热心网友
时间:2023-11-07 12:45
前面if嵌套不对。修改如下
#include<stdio.h>
int main()
{
float x;
int leap;
scanf("%f",&x);
if(x<90)
{
if(x<80)
{
if(x<70)
{
if(x<60)
{
leap=1;
}else leap=2;
}else leap=3;
}else leap=4;
}else leap=5;
switch(leap)
{case 1:printf("you grade is:E");break;
case 2:printf("you grade is:D");break;
case 3:printf("you grade is:C");break;
case 4:printf("you grade is:B");break;
case 5:printf("you grade is:A");break;
}
return 0;
}