独孤小梦 发布留言 2008-7-25 00:35
又一个switch的用法问题……
先谢谢看帖的朋友!问题如下:
我在做书上的一个习题……
题目为:给出100分制成绩,要求输出成绩等级‘A’‘B’‘C’‘D’‘E’。90分以上为A,80到89分为B…………
我这里写了个程序,还是switch问题,请各位帮忙看看!程序有什么错误!
有人说case后面只能是常量表达式,那么我这里可以吗?如果不可以,要怎么弄?
#include
#define N 20
void main()
{
int i,chengji[N];
for(i=0;i scanf("%d",chengji) //*开始判断*//
{
case (chengji>=80): printf("成绩为:B级"); break;
case (79>=chengji>=60): printf("成绩为:D级"); break;
case (chengji 本帖最后由 独孤小梦 于 2008-7-25 00:38 编辑 [/it]]独孤小梦 发布留言 2008-7-25 00:52
这个能编译出来,但是能不能不用IF啊?
#include
#define N 20
void main()
{
int i,chengji[N];
for(i=0;i scanf("%d",chengji>=90) printf("成绩为:A级");
if (89>=chengji>=70) printf("成绩为:C级");
if (69>=chengji<60) printf("成绩为:D级");
else printf("输入错误\n");
}
}
发现个问题,这个虽然能编译出来,但是不能用!
[ 本帖最后由 独孤小梦 于 2008-7-25 01:03 编辑 [/it]]carmen0531 发布留言 2008-7-25 01:26
看我的
#include
#define N 3
void main()
{
int i,chengji[N],a;
for(i=0;i scanf("%d",&chengji>=90) a=1;
else if(chengji>=80) a=2;
else if(chengji>=70) a=3;
else if(chengji>=60) a=4;
else if(chengji>=90):等显然是变量。xuanzilie 发布留言 2008-7-25 08:30
1 scanf() 有问题
2 case(<=a<=) 这种写法不对 --> case(a<= && a>=),应该这样写
[ 本帖最后由 xuanzilie 于 2008-7-25 08:50 编辑 [/it]]学不懂也要学C 发布留言 2008-7-25 09:51
case后面必须是常量表达式,(<=a<=)这么复杂的关系表达式电脑是不能智能的分析出来的.zqmillet 发布留言 2008-7-25 09:53
#include
#define N 20
void main()
{
int i,chengji;
for(i=0;i {
scanf("%d",&chengji);
switch((chengji/10))
{
case 10: printf("\nA\n"); break;
case 9: printf("\nA\n"); break;
case 8: printf("\nB\n"); break;
case 7: printf("\nC\n"); break;
case 6: printf("\nD\n"); break;
case 5: printf("\nE\n"); break;
case 4: printf("\nE\n"); break;
case 3: printf("\nE\n"); break;
case 2: printf("\nE\n"); break;
case 1: printf("\nE\n"); break;
case 0: printf("\nE\n"); break;
default:printf("\nError!\n") ;break;
}
}
}
试试这个StarWing83 发布留言 2008-7-25 10:17
#include
#define N 20
int main()
{
int i,res;
for (i=0;i {
scanf("%d",&res);
switch (res/10)
{
case 10:
case 9: printf("\nA\n"); break;
case 8: printf("\nB\n"); break;
case 7: printf("\nC\n"); break;
case 6: printf("\nD\n"); break;
case 5:
case 4:
case 3:
case 2:
case 1:
case 0: printf("\nE\n"); break;
default:printf("\nError!\n") ;break;
}
}
}
稍微改进一下。
switch的用法仅限于此,不要自己创造用法好不好……独孤小梦 发布留言 2008-7-25 14:43
呵呵,8楼正确回答!
错误,一开始我使用变量,来搞,后来看看书,必须使用常量表达式!呵呵!
谢谢大家^
页: [1]