高手,高手,在这美丽的平安夜之际,快来帮帮我吧,这道C语言不会呀!!急急急。。。有谁知到哪错了?

指定一个年龄,要求按照年龄阶段输出相应的时期:1到7是幼年,8到14是童年,15到21是少年,22到28是青年,29到49是中年,50到70是老年。
#include<stdio.h>
main()
{
int age;
printf("请输入一个年龄值\n");
scanf("%d",&age);
switch(age)
{
case 1<=age<=7:printf("幼年\n");break;
case 1<=age<=7:printf("童年\n");break;
case 1<=age<=7:printf("少年\n");break;
case 1<=age<=7:printf("青年\n");break;
case 1<=age<=7:printf("中年\n");break;
case 1<=age<=7:printf("老年\n");break;
default:printf("输入错误请重新输入\n");
}
}

//case后面不是能是表达式
#include<stdio.h>
main()
{
int age;
printf("请输入一个年龄值\n");
scanf("%d",&age);
if(age>=70)
printf("输入错误请重新输入\n");
else if(age>=50)
printf("老年\n");
else if(age>=29)
printf("中年\n");
else if(age>=22)
printf("青年\n");
else if(age>=15)
printf("少年\n");
else if(age>=8)
printf("童年\n");
else if(age>=1)
printf("幼年\n");
else
printf("输入错误请重新输入\n");
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-12-24
C语言里面不存在1<=age<=7这种大小表示方法。我把这个错误改一下,但是没有运行检测。具体调试还是看你自己吧,代码这东西不要总靠别人

#include<stdio.h>
main()
{
int age;
printf("请输入一个年龄值\n");
scanf("%d",&age);
switch(age)
{
case age>=70:printf("输入错误请重新输入\n");break;
case age>=50:printf("老年\n");break;
case age>=29:printf("中年\n");break;
case age>=22:printf("青年\n");break;
case age>=15:printf("少年\n");break;
case age>=8:printf("童年\n");break;
case age>=1:printf("幼年\n");break;
default:printf("输入错误请重新输入\n");
}
}追问

太感谢您啦,不过我运行了一下还是有不少错误,也不知道是哪出了问题,特别是在几个case那....

来自:求助得到的回答
第1个回答  2012-12-24
#include<stdio.h>
main()
{
int age;
printf("请输入一个年龄值\n");
scanf("%d",&age);
switch(age)
{
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:printf("幼年\n");break;
case 8:
case 9:
case 10:
case 11:
case 12:
case 13:
case 14
::printf("童年\n");break;
case 15:
case 16:
case 17:
case 18:
case 19:
case 20:
case 21:printf("少年\n");break;
case 22:
case 23:
case 24:
case 25:
case 26:
case 27:
case 28:printf("青年\n");break;
case 29:
case 30:
case 31:
case 32:
case 33:
case 34:
case 35:
case 36:
case 37:
case 38:
case 39:
case 40:
case 41:
case 42:
case 43:
case 44:
case 45:
case 46:
case 47:
case 48:
case 49: printf("中年\n");break;
case 50:
case 51:
case 52:
case 53:
case 54:
case 55:
case 56:
case 57:
case 58:
case 59:
case 60:
case 61:
case 62:
case 63:
case 64:
case 65:
case 66:
case 67:
case 68:
case 69:
case 70:printf("老年\n");break;
default:printf("输入错误请重新输入\n");
}
}
第2个回答  2012-12-24
你是switch里的每一个条件都是1到7岁啊,肯定出错啊,应该是
switch(age)
{
case 1<=age<=7:printf("幼年\n");break;
case 8<=age<=14:printf("童年\n");break;
case 15<=age<=21:printf("少年\n");break;
case 22<=age<=28:printf("青年\n");break;
case 29<=age<=49:printf("中年\n");break;
case 50<=age<=70:printf("老年\n");break;
default:printf("输入错误请重新输入\n");
}
第3个回答  2012-12-24
switch是一个开关,case标签必须用精确值,switch一般处理离散,连续的变量建议用if else迭代
相似回答