代码修改如下,供参考对照:
#include <stdio.h>
typedef struct {
char no[20];
char name[20];
float yw;
float sx;
float yy;
float sum;
}Student;
//Student stds[1000]; 这里全局变量定义多余了
void input(Student s[], int* len)
{
int i, n;
printf("请输入增加的人数:");
scanf("%d", &n);
for (i = (*len), (*len) += n; i < (*len); i++) {
printf("学号:");
scanf("%s", s[i].no);
getchar();
printf("姓名:");
scanf("%s", s[i].name);
getchar();
printf("语文:");
scanf("%f", &s[i].yw);
getchar();
printf("数学:");
scanf("%f", &s[i].sx);
getchar();
printf("英语:");
scanf("%f", &s[i].yy);
getchar();
}
}
void sum(Student s[], int len)
{
int i;
for (i = 0; i < len; i++) {
s[i].sum = s[i].yw + s[i].sx + s[i].yy;
}
}
void swap(Student* a, Student* b)
{
Student tmp;
tmp = *a;
*a = *b;
*b = tmp;
}
void sort(Student s[], int len)
{
int i, j;
for (i = 0; i < len - 1; i++)
for (j = i + 1; j < len; j++)
if (s[i].sum < s[j].sum)
swap(&s[i], &s[j]);
}
void print(Student s[], int len)
{
int i;
for (i = 0; i < len; i++)
printf("%s,%s,%.2f,%.2f,%.2f,%.2f\n",
s[i].no, s[i].name, s[i].yw, s[i].sx, s[i].yy, s[i].sum);
}
int main()
{
Student stds[1000] = {
{"1001","李三",100,100,100,0},
{"1002","张三",80,80,85,0},
{"1003","王二",70,95,87,0},
{"1004","李四",60,90,82,0}
};
int len = 4;
input(stds, &len);
sum(stds, len);
sort(stds, len);
print(stds, len);
return 0;
}
代码格式都是乱的,哪里需要补充代码?题目要求呢
排一下版吧