该怎么使用结构体完成这个问题。。没有学习链表
1. 定义一个结构体数组,编写函数 input( )实现从键盘输入表 1 中数据给数组。2. 编写计算函数 calculate(),给每个同学的总分和平均分填上数据。
3. 编写查询函数 seek(),通过键盘输入一个姓名,查询该同学的各种数据;若此同学不存 在,则输出“NO FIND”。如:输入“Marry”,则输出 1003 号同学各项数据;输入“Machael”, 则输出“No find”。
4. (选做)编写按总分排序程序 sort(),根据每位学生的总分降序排列。
程序代码:
#include <stdio.h>
#include <conio.h>
struct Line {
long num;
char name[20];
char sex[2];
int age;
struct Grade{
int Math;
int Computer;
int Chemistry;
int English;}gra;
};
void calculate(struct Line L[],int n);
void input(struct Line L[],int n);
void output(struct Line L[],int n);
void main(){
struct Line score[5];
input(score,5);
output(score,5);
getch();
}
void input(struct Line L[],int n){
int i;
for(i=0;i<n;i++){
printf("\n请输入第%d个同学的学号:\n",i+1);
scanf("%d",&L[i].num);
printf("\n请输入第%d个同学的姓名:\n",i+1);
scanf("%s",&L[i].name);
printf("\n请输入第%d个同学的性别:\n",i+1);
scanf("%s",&L[i].sex);
printf("\n请输入第%d个同学的年龄:\n",i+1);
scanf("%d",&L[i].age);
printf("\n请输入第%d个同学的高数成绩:\n",i+1);
scanf("%d",&L[i].gra.Math);
printf("\n请输入第%d个同学的计算机成绩:\n",i+1);
scanf("%d",&L[i].);
printf("\n请输入第%d个同学的物理成绩:\n",i+1);
scanf("%d",&L[i].gra.Chemistry);
printf("\n请输入第%d个同学的英语成绩:\n",i+1);
scanf("%d",&L[i].gra.English);
}
void calculate(struct Line L[],int n){
int i
float *total[5]={NULL};
float *average[5]={NULL};
for(i=0;i<n;i++)
total[i]=L[i].gra.Math+L[i].[i].gra.Chemistry+L[i].gra.English;
average[i]=total[i]/4;
printf("输出第%d个同学的总成绩:%f",i+1,total[i]);
printf("输出第%d个同学的平均成绩:%f",i+1,average[i]);
}
void output(struct Line L[],int n){
int i;
for(i=0;i<n;i++){
printf("学号:%d\n",L[i].num);
printf("姓名:%s\n",L[i].name);
printf("性别:%s\n",L[i].sex);
printf("年龄:%d\n",L[i].age);
printf("高数成绩:%d\n",L[i].gra.Math);
printf("计算机成绩:%d\n",L[i].);
printf("物理成绩:%d\n",L[i].gra.Chemistry);
printf("英语成绩:%d\n",L[i].gra.English);
printf("总成绩:%f\n",total[i]);
printf("平均成绩:%f\n",average[i]);
}
该怎么使用结构体完成这个问题。。没有学习链表



。。。不好意思 学的太烂了








