分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow
也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!
返回:贺老师课程教学链接
【项目1-学生成绩统计】
每位同学的信息学号、姓名、C、高数、英语成绩。定义一个学生成绩的结构体数组,其中的数据成员包括学号(char num[13])、姓名(name)、三门课的成绩(grade)、总分(score)、均分(average))。
(1)从键盘上输入N名学生的信息(N定义为常变量);
(2)求出每名同学的总分和均分,并存储在结构体数组中(可以读入过程中“顺便”计算);
(3)输出每位同学的信息学号、姓名、总分和均分。
请参考下面的代码,将需要的其他代码写出来。
#include <stdio.h>struct Student{ char num[13]; char name[10]; int c; int math; int english; int grade; double average;};const int N=3;int main( ){ int i, j, k; //定义结构体数组 struct Student stu[N]; //写出代码,实现要求的功能 return 0;}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
参考运行结果如图:
[参考解答]
#include <stdio.h>struct Student{ char num[13]; //尽管都是由数字构成,但看作为字符更合适。学号12位,定义为13个字符,便于处理成字符串 char name[10]; //每个汉字占两个字节,中国人的名字,5个汉字够用 int c; int math; int english; int grade; double average;};const int N=3;int main( ){ int i; //定义结构体数组 struct Student stu[N]; double total=0; printf("请输入学号、姓名、C、高数、英语成绩:\n"); for(i=0; i<N; i++) { scanf("%s %s %d %d %d", stu[i].num, stu[i].name, &stu[i].c, &stu[i].math, &stu[i].english); stu[i].grade=stu[i].c+stu[i].math+stu[i].english; stu[i].average=stu[i].grade/3.0; total+=stu[i].average; } //输出成绩单 printf("学号\t姓名\t总分\t均分\n"); for(i=0; i<N; i++) printf("%s\t%s\t%d\t%.1f\n", stu[i].num,stu[i].name,stu[i].grade,stu[i].average); printf("所有同学均分的均值是:%.1f\n", total/N); return 0;}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
(4)使用相同的结构体类型,在main函数中已经对结构体数组进行了初始化,请完成相关函数的定义,实现main函数中要求的功能。
#include <stdio.h>struct Student //同前{ ……};void calculate(struct Student s[],int n); //计算总分和均分,数据在s数组中,共有n个元素void sort1(struct Student [],int); //按总分降序排序void sort2(struct Student [],int); //按学号升序排序void output(struct Student [],int); //输出成绩单void outputExcellent(struct Student [],int); //输出优秀者:总分超285,单科不低于90int main(){ struct Student stu[]= {
{
"201152501104","Tom",65,69 ,68 }, {
"201152501114","Jeery",94 ,89 ,63 }, {
"201152501138","Speike",67 ,62 ,84 }, {
"201152501204","Tyke",100 ,95 ,91 }, {
"201152501202","Tuffy",59 ,80 ,55 }, {
"201152501115","Butch",100 ,99 ,89 }, {
"201152501201","Lightning",95 ,92 ,99 }, {
"201152501145","Topsy",88 ,56 ,67 }, {
"201152501203","Droopy",62 ,62 ,95 }, {
"201152501140","Drupa",80 ,60 ,86 }, {
"201152501205","Buzz",73 ,90 ,94} }; int stuNum=sizeof(stu)/