输入6个学生成绩,分别统计成绩在85~100,60~85,和60分以下的各分数短中的人数
答案:1 悬赏:20
解决时间 2021-01-27 21:25
- 提问者网友:星軌
- 2021-01-27 10:14
输入6个学生成绩,分别统计成绩在85~100,60~85,和60分以下的各分数短中的人数
最佳答案
- 二级知识专家网友:酒醒三更
- 2021-01-27 11:28
#include
#define MAX 6
void main()
{
int stu_num[MAX],i;
int a=0,b=0,c=0;
printf("请输入%d个学生的成绩:\n",MAX);
for(i=1;i<=MAX;i++)
{
scanf("%d",&stu_num[i]);
}
for(i=1;i<=MAX;i++)//统计各分数段的人数
{
if(stu_num[i]>=85&&stu_num[i]<=100)
a++;
else if(stu_num[i]>=60&&stu_num[i]<85)
b++;
else
c++;
}
printf("85=<分数<=100 的人数为%d人\n",a);
printf("60=<分数<85 的人数为%d人\n",b);
printf("分数<60 的人数为%d人\n",c);
getchar();
getchar();
}追问#include
main()
{int n1,n2,n3,num,g;
for(num=1;num<=6;num++)
scanf("%d",&g);
if(85<=g && g<=100)
{ n1=0;
n1++;
printf("85~100的人数=%d\n",n1);}
if(60<=g && g<=85)
{ n2=0;
n2++;
printf("60~85的人数=%d\n",n2);}
if(g<60)
{ n3=0;
n3++;
printf("60以下的人数=%d\n",n3);}
}追答你的程序有1个小问题。
就是你的for循环会执行六次,每次都给变量g赋值,后面一次的赋值会把前面一次的赋值给覆盖掉,所以g最后存的是第六个学生的值。然后接下来进入if判断分数段,进行一次判断后马上就让相应分数段的统计量n(x)自增一,然后输出该分数段的值,因为只进行了一次判断,所以输出时,三个分数段的人数中只有一个显示为1,其余的为0.这个程序不太符合题目的意思。只要修改一下即可。
我帮你修改了一下:
#include
void main()
{
int n1=0,n2=0,n3=0,num,g;
for(num=1;num<=6;num++)
{
scanf("%d",&g);
if(85<=g && g<=100)
{
n1++;
}
if(60<=g && g<=85)
{
n2++;
}
if(g<60)
{
n3++;
}
}
printf("85~100的人数=%d\n",n1);
printf("60~85的人数=%d\n",n2);
printf("60以下的人数=%d\n",n3);
getchar();
getchar();
}
#define MAX 6
void main()
{
int stu_num[MAX],i;
int a=0,b=0,c=0;
printf("请输入%d个学生的成绩:\n",MAX);
for(i=1;i<=MAX;i++)
{
scanf("%d",&stu_num[i]);
}
for(i=1;i<=MAX;i++)//统计各分数段的人数
{
if(stu_num[i]>=85&&stu_num[i]<=100)
a++;
else if(stu_num[i]>=60&&stu_num[i]<85)
b++;
else
c++;
}
printf("85=<分数<=100 的人数为%d人\n",a);
printf("60=<分数<85 的人数为%d人\n",b);
printf("分数<60 的人数为%d人\n",c);
getchar();
getchar();
}追问#include
main()
{int n1,n2,n3,num,g;
for(num=1;num<=6;num++)
scanf("%d",&g);
if(85<=g && g<=100)
{ n1=0;
n1++;
printf("85~100的人数=%d\n",n1);}
if(60<=g && g<=85)
{ n2=0;
n2++;
printf("60~85的人数=%d\n",n2);}
if(g<60)
{ n3=0;
n3++;
printf("60以下的人数=%d\n",n3);}
}追答你的程序有1个小问题。
就是你的for循环会执行六次,每次都给变量g赋值,后面一次的赋值会把前面一次的赋值给覆盖掉,所以g最后存的是第六个学生的值。然后接下来进入if判断分数段,进行一次判断后马上就让相应分数段的统计量n(x)自增一,然后输出该分数段的值,因为只进行了一次判断,所以输出时,三个分数段的人数中只有一个显示为1,其余的为0.这个程序不太符合题目的意思。只要修改一下即可。
我帮你修改了一下:
#include
void main()
{
int n1=0,n2=0,n3=0,num,g;
for(num=1;num<=6;num++)
{
scanf("%d",&g);
if(85<=g && g<=100)
{
n1++;
}
if(60<=g && g<=85)
{
n2++;
}
if(g<60)
{
n3++;
}
}
printf("85~100的人数=%d\n",n1);
printf("60~85的人数=%d\n",n2);
printf("60以下的人数=%d\n",n3);
getchar();
getchar();
}
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯