题目没说输入学生的名字,所以有一些小问很难说清楚,呃呃呃,题目不够好吧,为了题而出的题
#include <stdio.h>
struct student
{
double a;
double b;
double c;
double d;
double e;
} fh[100];
int main ()
{
int n;
double as = 0, bs = 0, cs = 0, ds = 0, es = 0, max = 0;
double pd[5] = {
0};
printf("输入学生的人数:");
scanf("%d", &n);
printf("输入每个学生五科成绩:");
for (int i = 0; i < n; i++)
{
scanf("%lf %lf %lf %lf %lf", &fh[i].a, &fh[i].b, &fh[i].c, &fh[i].d, &fh[i].e);
}
printf("计算每个人的平均分:");
for (int i = 0; i < n; i++)
{
printf("%lf ", (fh[i].a + fh[i].b + fh[i].c + fh[i].d + fh[i].e) / 5);
}
printf("\n");
printf("计算每门课的平均分:");
for (int i = 0; i < n; i++)
{
as = fh[i].a + as;
bs = fh[i].b + bs;
cs = fh[i].c + cs;
ds = fh[i].d + ds;
es = fh[i].e+es;
}
printf("%lf %lf %lf %lf %lf", as / n, bs / n, cs / n, ds / n, es / n);
printf("\n");
for (int i = 0; i < n; i++)
{
if (fh[i].a > pd[0])
{
pd[0] = fh[i].a;
}
if (fh[i].b > pd[1])
{
pd[1] = fh[i].b;
}
if (fh[i].c > pd[2])
{
pd[2] = fh[i].c;
}
if (fh[i].d > pd[3])
{
pd[3] = fh[i].d;
}
if (fh[i].e > pd[4])
{
pd[4] = fh[i].e;
}
}
for (int i = 0; i < 5; i++)
{
if (pd[i] > max)
{
max = pd[i];
}
}
printf("对应分数中最高分学生的分数:%lf ", max);//没有名字就用分数代替这个人吧。
printf("\n");
for (int i = 0; i < 5; i++)
{
if (pd[i] == max)
{
if (i == 0)
{
printf("那个学生第一门成绩高分 ");
}
if (i == 1)
{
printf("那个学生第二门成绩高分 ");
}
if (i == 2)
{
printf("那个学生第三门成绩高分 ");
}
if (i == 3)
{
printf("那个学生第四门成绩高分 ");
}
if (i == 4)
{
printf("那个学生第五门成绩高分 ");
}
}
}
printf("\n");
printf("平均分方差:");
double sum = 0, sum1 = 0;
for (int i = 0; i < n; i++)
{
sum = ((fh[i].a + fh[i].b + fh[i].c + fh[i].d + fh[i].e) / 5) * ((fh[i].a + fh[i].b + fh[i].c + fh[i].d + fh[i].e) / 5)
+ sum;
}
sum = sum / n;
for (int i = 0; i < n; i++)
{
sum1 = (fh[i].a + fh[i].b + fh[i].c + fh[i].d + fh[i].e) / 5 + sum1;
}
sum1 = sum1 / n;
sum1 = sum1 * sum1;
printf("%lf", sum - sum1);
return 0;
}
后来跟我说居然写漏了,然后我再写
#include <stdio.h>
//假设成绩总分是100分。
struct student
{
double a;
double b;
double c;
double d;
double e;
} fh[1000];
void swap (double ans[], int n)
{
int temp;
for (int i = 0; i < n - 1; i++)
{
for (int j = 0; j < n - i - 1; j++)
{
if (ans[j] < ans[j + 1])
{
temp = ans[j];
ans[j] = ans[j + 1];
ans[j + 1] = temp;
}
}
}
}
int main ()
{
int n;
double as = 0, bs = 0, cs = 0, ds = 0, es = 0, max = 0;
double pd[5] = {
0}, ans[1000] = {
0};
double s[99999] = {
0};
printf("输入学生的人数:");
scanf("%d", &n);
printf("输入每个学生五科成绩:");
for (int i = 0; i < n; i++)
{
scanf("%lf %lf %lf %lf %lf", &fh[i].a, &fh[i].b, &fh[i].c, &fh[i].d, &fh[i].e);
}
printf("计算每个人的平均分:");
for (int i = 0; i < n; i++)
{
printf("%.2lf ", (fh[i].a + fh[i].b + fh[i].c + fh[i].d + fh[i].e) / 5);
}
printf("\n");
printf("计算每门课的平均分:");
for (int i = 0; i < n; i++)
{
as = fh[i].a + as;
bs = fh[i].b + bs;
cs = fh[i].c + cs;
ds = fh[i].d + ds;
es = fh[i].e+es;
}
printf("%.2lf %.2lf %.2lf %.2lf %.2lf", as / n, bs / n, cs / n, ds / n, es / n);
printf("\n");
for (int i = 0; i < n; i++)
{
if (fh[i].a > pd[0])
{
pd[0] = fh[i].a;
}
if (fh[i].b > pd[1])
{
pd[1] = fh[i].b;
}
if (fh[i].c > pd[2])
{
pd[2] = fh[i].c;
}
if (fh[i].d > pd[3])
{
pd[3] = fh[i].d;
}
if (fh[i].e > pd[4])
{
pd[4] = fh[i].e;
}
}
for (int i = 0; i < 5; i++)
{
if (pd[i] > max)
{
max = pd[i];
}
}
printf("对应分数中最高分学生的分数:%.2lf ", max);//没有名字就用分数代替这个人吧。
printf("\n");
for (int i = 0; i < 5; i++)
{
if (pd[i] == max)
{
if (i == 0)
{
printf("第一门成绩高分 ");
}
if (i == 1)
{
printf("第二门成绩高分 ");
}
if (i == 2)
{
printf("第三门成绩高分 ");
}
if (i == 3)
{
printf("第四门成绩高分 ");
}
if (i == 4)
{
printf("第五门成绩高分 ");
}
}
}
printf("\n");
printf("平均分方差:");
double sum = 0, sum1 = 0;
for (int i = 0; i < n; i++)
{
sum = ((fh[i].a + fh[i].b + fh[i].c + fh[i].d + fh[i].e) / 5) * ((fh[i].a + fh[i].b + fh[i].c + fh[i].d + fh[i].e) / 5)
+ sum;
}
sum = sum / n;
for (int i = 0; i < n; i++)
{
sum1 = (fh[i].a + fh[i].b + fh[i].c + fh[i].d + fh[i].e) / 5 + sum1;
}
sum1 = sum1 / n;
sum1 = sum1 * sum1;
printf("%.2lf", sum - sum1);
printf("\n");
printf("学生总成绩高到低:");
for (int i = 0; i < n; i++)
{
ans[i] = fh[i].a + fh[i].b + fh[i].c + fh[i].d + fh[i].e;
}
printf("\n");
int k = n;
swap(ans, k);
for (int i = 0; i < n; i++)
{
printf("%.2lf ", ans[i]);
}
printf("\n");
printf("假设A等级为75-100分,假设B等级为50-75分,假设C等级为25-50分,假设C等级为0-25分");
printf("\n");
for (int i = 0; i < n; i++)
{
if (fh[i].a >= 75 && fh[i].a <= 100)
{
s[0]++;
}
if (fh[i].a >= 50 && fh[i].a < 75)
{
s[1]++;
}
if (fh[i].a >= 25 && fh[i].a < 50)
{
s[2]++;
}
if (fh[i].a >= 0 && fh[i].a < 25)
{
s[3]++;
}
}
printf("第一门课中:\n");
printf("A对应人数:%.2lf 对应百分比:%.2lf\n", s[0], s[0] / n);
printf("B对应人数:%.2lf 对应百分比:%.2lf\n", s[1], s[1] / n);
printf("C对应人数:%.2lf 对应百分比:%.2lf\n", s[2], s[2] / n);
printf("D对应人数:%.2lf 对应百分比:%.2lf\n", s[3], s[3] / n);
printf("\n");
for (int i = 0; i < n; i++)
{
if (fh[i].b >= 75 && fh[i].b <= 100)
{
s[0 + 4]++;
}
if (fh[i].b >= 50 && fh[i].b < 75)
{
s[1 + 4]++;
}
if (fh[i].b >= 25 && fh[i].b < 50)
{
s[2 + 4]++;
}
if (fh[i].b >= 0 && fh[i].b < 25)
{
s[3 + 4]++;
}
}
printf("第二门课中:\n");
printf("A对应人数:%.2lf 对应百分比:%.2lf\n", s[4], s[4] / n);
printf("B对应人数:%.2lf 对应百分比:%.2lf\n", s[5], s[5] / n);
printf("C对应人数:%.2lf 对应百分比:%.2lf\n", s[6], s[6] / n);
printf("D对应人数:%.2lf 对应百分比:%.2lf\n", s[7], s[7] / n);
printf("\n");
for (int i = 0; i < n; i++)
{
if (fh[i].c >= 75 && fh[i].c <= 100)
{
s[0 + 8]++;
}
if (fh[i].c >= 50 && fh[i].c < 75)
{
s[1 + 8]++;
}
if (fh[i].c >= 25 && fh[i].c < 50)
{
s[2 + 8]++;
}
if (fh[i].c >= 0 && fh[i].c < 25)
{
s[3 + 8]++;
}
}
printf("第三门课中:\n");
printf("A对应人数:%.2lf 对应百分比:%.2lf\n", s[8], s[8] / n);
printf("B对应人数:%.2lf 对应百分比:%.2lf\n", s[9], s[9] / n);
printf("C对应人数:%.2lf 对应百分比:%.2lf\n", s[10], s[10] / n);
printf("D对应人数:%.2lf 对应百分比:%.2lf\n", s[11], s[11] / n);
printf("\n");
for (int i = 0; i < n; i++)
{
if (fh[i].d >= 75 && fh[i].d <= 100)
{
s[0 + 12]++;
}
if (fh[i].d >= 50 && fh[i].d < 75)
{
s[1 + 12]++;
}
if (fh[i].d >= 25 && fh[i].d < 50)
{
s[2 + 12]++;
}
if (fh[i].d >= 0 && fh[i].d < 25)
{
s[3 + 12]++;
}
}
printf("第四门课中:\n");
printf("A对应人数:%.2lf 对应百分比:%.2lf\n", s[0 + 12], s[0 + 12] / n);
printf("B对应人数:%.2lf 对应百分比:%.2lf\n", s[1 + 12], s[1 + 12] / n);
printf("C对应人数:%.2lf 对应百分比:%.2lf\n", s[2 + 12], s[2 + 12] / n);
printf("D对应人数:%.2lf 对应百分比:%.2lf\n", s[12 + 3], s[3 + 12] / n);
printf("\n");
for (int i = 0; i < n; i++)
{
if (fh[i].e >= 75 && fh[i].e <= 100)
{
s[0 + 16]++;
}
if (fh[i].e >= 50 && fh[i].e < 75)
{
s[1 + 16]++;
}
if (fh[i].e >= 25 && fh[i].e < 50)
{
s[2 + 16]++;
}
if (fh[i].e >= 0 && fh[i].e < 25)
{
s[3 + 16]++;
}
}
printf("第五门课中:\n");
printf("A对应人数:%.2lf 对应百分比:%.2lf\n", s[0 + 16], s[0 + 16] / n);
printf("B对应人数:%.2lf 对应百分比:%.2lf\n", s[1 + 16], s[1 + 16] / n);
printf("C对应人数:%.2lf 对应百分比:%.2lf\n", s[2 + 16], s[2 + 16] / n);
printf("D对应人数:%.2lf 对应百分比:%.2lf\n", s[16 + 3], s[3 + 16] / n);
return 0;
}