900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 结构体数组]用结构数组建立一张班级成绩单 包括每个学生的学号 姓名 成绩(C语言)

结构体数组]用结构数组建立一张班级成绩单 包括每个学生的学号 姓名 成绩(C语言)

时间:2024-05-26 10:33:56

相关推荐

结构体数组]用结构数组建立一张班级成绩单 包括每个学生的学号 姓名 成绩(C语言)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

题目:

[实验案例2:结构体数组]

用结构数组建立一张班级成绩单,包括每个学生的学号、姓名、成绩。用函数编程实现下列功能:

1. 输入每个学生的各项信息;

2. 输出每个学生的各项信息;

3. 按照学生的成绩项进行降序排序。

[实验指导]

先定义结构体,再定义输入函数、排序函数和显示函数。用主函数分别调用这些函数。

代码:

/* 用结构数组定义输入、排序和输出每个学生的信息,文件名sy9_2.c */#include <stdio.h>#define N 3struct Stu {long id; /* 学生编号*/char name[20]; /* 名称 */float score; /* 成绩 */};void input( struct Stu *p ,int n);void sort( struct Stu *p ,int n);void display( struct Stu *p ,int n);int main( ){printf("请输入3个学生的信息:\n") ;struct Stu info[N];input(info,N); /*结构体数组名作为实参 */display( &info[0] ,N); sort(info,N);display(info,N);return 0;}void input(struct Stu *p,int n) /*输入结构体数组各元素的成员的值 */{ int i;float temp;for(i=0;i<n;i++){printf("请输入编号:");scanf("%ld", &p[i].id );printf("请输入姓名:");scanf("%s", (p+i)->name );printf("请输入成绩:");scanf("%f", &temp); (*(p+i)).score =temp; printf("\n");}}void sort(struct Stu *p,int n)/*对成绩用选择法进行降序排序 */{ int i,j; struct Stu t;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if((p+i)->score<(p+j)->score){t=*(p+i);*(p+i)=*(p+j);*(p+j)=t;}}void display(struct Stu *p,int n)/*显示结构体数组元素的成员的值 */{int i;for(i=0;i<n;i++){printf("编号为:%ld\t", (*(p+i)).id );printf("姓名为:%s\t", (p+i)->name );printf("成绩为:%.2f\n", p[i].score );}}

结果:

总结

提示:这里对文章进行总结:

例如:以上就是今天要讲的内容,本文仅仅简单介绍了结构体数组。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。