该怎么使用结构体完成这个问题。。没有学习链表
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]); }
该怎么使用结构体完成这个问题。。没有学习链表
。。。不好意思 学的太烂了