C高手帮帮忙 程序编的有问题

来源:百度知道 编辑:UC知道 时间:2024/04/30 13:58:17
#include <stdio.h>
main()
{
int a;
printf("a=");
scanf("%d",&a);
switch (a)
{
case (0<=a<60): printf("F"); break;
case (60<=a<=100): printf("T"); break;
default: printf("error"); break;
}
}

/* 帮帮忙看看哪出错了???*/

你的意思应该是看有没有及格。
但是一个表达式的值是0或1,那么就相当于把a的值和0,1
比较,比如a=59,那么第一个式子的值是1,第二个是0.
但是a既不等于0也不等于1,所以会跑到default里面去。
而且在C中a在0到60之间不是你那样写的,应该写成a<60&&a>=0,60-100的同理。
正确的写法
#include <stdio.h>
main()
{
int a;
printf("a=");
scanf("%d",&a);
if(a>=60&&a<=100)
printf("T\n");
else if(a<60&&a>=0)
printf("F\n");
else
printf("error\n");
}
这个用switch语句不太好,if-else就行了
也可以用printf("%s\n",a>=60?"T":"F");