69,371
社区成员
发帖
与我相关
我的任务
分享
int mymax(struct stu a[]) /* 计算总分最高的学生的下标 */
{
double m = a[0].sum;
int i,j=0;
for (i = 1; i < 3; i++)
{
if (m < a[i].sum)
{
m = a[i].sum;
j = i; //用 j 保存最大值得下标
}
}
return j;
}
int mymax(struct stu a[]) /* 计算总分最高的学生的下标 */
{
double m = a[0].sum;
int i;
for (i = 1; i < 3; i++)
if (m < a[i].sum)
m = a[i].sum;
i -= 1;
return i;
}
#include "stdio.h"
#include "stdlib.h"
#define M 3
struct stu
{
int no;
char name[20];
int score[3];
int sum;
};
struct stu s[M];
void input(struct stu a[]) /*输入学生数据*/
{
int i, j;
printf("请输入M个学生的学号、姓名、3门成绩\n");
for (i = 0; i < M; i++)
{
scanf("%d", &a[i].no);
scanf("%s", a[i].name);
for (j = 0; j < 3; j++)
scanf("%d", &a[i].score[j]);
}
}
void calc(struct stu a[]) /* 计算每个学生三门课总分 */
{/************found************/
int i, j;
for (i = 0; i < 3; i++)
{
a[i].sum = 0;
for (j = 0; j < 3; j++)
a[i].sum += a[i].score[j];
};
}
int max(struct stu a[]) /* 计算总分最高的学生的下标 */
{/************found************/
double m = a[0].sum;
int i;
for (i = 1; i < 3; i++)
if (m < a[i].sum)
m = a[i].sum;
return i;
}
void pnt(struct stu b) /* 在屏幕上输出总分最高的学生信息 */
{/************found************/
int i;
printf("%6d\n", b.no);
printf("%s\n", b.name);
for (i = 0; i < 3; i++)
printf("%5d", b.score[i]);
printf("%6d", b.sum);
}
int main()
{
int m;
input(s);
calc(s);
m = max(s);
pnt(s[m]);
system("pause");
return 0;
}