来吧 虽然简单 但真诚求助
习题1:输入一个班上的同学的年龄和性别,统计班上的男女生数目,并且统计出各个年龄段的人数,以循环方式输入。当输入的年龄为0是结束输入
#include<stdio.h>
int main()
{
int a=0,b=0,c=0,d,e,f=0,g=0; /* a为18岁到20岁之间的*/
/*b为20-25岁之间的*//* c为25-30岁之间的*/
do{
printf("请输入年龄和性别 男为1 女为0:");
scanf("%d %d",&d,&e);
if((d<18||d>30)||(e<0||e>1))
{printf("错误");
continue;}
if(d>18&&d<=20);
a++;
if(d>20&&d<=25);
b++;
if(d>25&&d<=30);
c++;
if(e==1);
f++;
if(e==0);
g++;
}while(d!=0);
printf("18——20 you %d ren\n",a);
printf("20——25 you %d ren\n",b);
printf("25——30 you %d ren\n",c);
printf("nan you %d ren nv you %d ren",f,g);
return 0;
}
不知道 错在那里了 晕死
问题点数:20、回复次数:4Top
1 楼wanfustudio(雁南飞:知识之败,慕虚名而不务潜修也)回复于 2006-06-02 13:58:33 得分 0
if((d<18||d>30)||(e<0||e>1))
//----------
&&Top
2 楼legend808(冬雪)回复于 2006-06-02 13:59:10 得分 0
如果我输入 18岁
20岁
打印的结果是: 18——20 you 2 ren
20——25 you 2 ren
25——30 you 2d ren
nan you 2 ren nv you 2 ren;
我输入多少次
他就有多少人
Top
3 楼wanfustudio(雁南飞:知识之败,慕虚名而不务潜修也)回复于 2006-06-02 14:05:29 得分 10
if(d>18&&d<=20)
a++;
if(d>20&&d<=25)
b++;
if(d>25&&d<=30)
c++;
把每个if后面的分号去掉 if(....); 就这个分号Top
4 楼wanfustudio(雁南飞:知识之败,慕虚名而不务潜修也)回复于 2006-06-02 14:06:52 得分 10
你的执行是这样的
if(。。。){}
a++;
if(...) {}
b++;
就是说 if条件虽然是判断了,但是执行的是空语句
a++;b++;等都没有收到约束
Top




