1,学生的平均年龄,平均成绩。
2,各年龄段学生人数的分布情况。
3,各成绩段学生人数的分布情况。
要求:用结构数组编写。。。。。
不是很难,我写了一个,参考一下吧:
#include <stdio.h>
#define N 3
struct student
{
int num;
char name[20];
int age;
double score;
}stu[N], *p;
int main( void )
{
double aveAge = 0, aveScore = 0;
int scoreCnt[5] = {0};
int i;
for(p = stu; p < stu+N; p++)
scanf("%d%s%d%lf", &p->num, p->name, &p->age, &p->score);
/*计算平均年龄和平均成绩*/
for(p = stu; p < stu+N; p++)
{
aveAge += p->age;
aveScore += p->score;
}
aveAge = aveAge/N;
aveScore = aveScore/N;
printf("平均年龄:%lf\t平均成绩:%lf\n", aveAge, aveScore);
/*统计各个分数段的人数,各成绩段学生人数的分布情况类似*/
for(p = stu; p < stu+N; p++)
{
if(p->score >= 90)
scoreCnt[0]++;
else if(p->score >= 80)
scoreCnt[1]++;
else if(p->score >= 70)
scoreCnt[2]++;
else if(p->score >= 60)
scoreCnt[3]++;
else
scoreCnt[4]++;
}
for(i = 0; i < 5; i++)
{
if(i < 4)
printf("%d分以上的人数:\t%d\n", 90-10*i,scoreCnt[i]);
else
printf("60分以下的人数:\t%d\n",scoreCnt[i]);
}
return 0;
}
不是很难,我写了一个,参考一下吧:
#include <stdio.h>
#define N 3
struct student
{
int num;
char name[20];
int age;
double score;
}stu[N], *p;
int main( void )
{
double aveAge = 0, aveScore = 0;
int scoreCnt[5] = {0};
int i;
for(p = stu; p < stu+N; p++)
scanf("%d%s%d%lf", &p->num, p->name, &p->age, &p->score);
/*计算平均年龄和平均成绩*/
for(p = stu; p < stu+N; p++)
{
aveAge += p->age;
aveScore += p->score;
}
aveAge = aveAge/N;
aveScore = aveScore/N;
printf("平均年龄:%lf\t平均成绩:%lf\n", aveAge, aveScore);
/*统计各个分数段的人数,各成绩段学生人数的分布情况类似*/
for(p = stu; p < stu+N; p++)
{
if(p->score >= 90)
scoreCnt[0]++;
else if(p->score >= 80)
scoreCnt[1]++;
else if(p->score >= 70)
scoreCnt[2]++;
else if(p->score >= 60)
scoreCnt[3]++;
else
scoreCnt[4]++;
}
for(i = 0; i < 5; i++)
{
if(i < 4)
printf("%d分以上的人数:\t%d\n", 90-10*i,scoreCnt[i]);
else
printf("60分以下的人数:\t%d\n",scoreCnt[i]);
}
return 0;
}
你好,首先要感谢你在编程中国里帮我解决了那个问题:可是我把它弄到TC的时候汉字部分出现乱码,请你再帮我改一下行么,谢谢了~~~~