一直对嵌入式底层开发感兴趣,无奈基础实在有些薄弱,买了本嵌入式入门书,没有找到书中练习题的答案,于是准备亲自动手实现下。开此博客望与大家共同讨论进步。因为内容都很基础,望大方之家不要见笑。
题目:有10个学生,每个学生的数据包括学号、姓名、5门课程的成绩,从键盘输入学生的成绩,计算5门课程的平均成绩,输出最高和最低分数的学生的学号、姓名、5门课程的成绩和平均分。
#include<stdio.h> #define N 10 struct { int number; char name[20]; float scores[5]; float average; }student[N]; void printfinfo(int index); int main(){ for(int i =0;i<N;i++){ float totle=0.0; printf("number:"); scanf("%d",&student[i].number); printf("name:"); scanf("%s",&student[i].name); printf("scores:"); for(int j=0;j<5;j++){ scanf("%f",&student[i].scores[j]); totle+=student[i].scores[j]; } student[i].average=totle/3; } int maxindex,minindex=0; int cur= 0; float max,min=student[0].average; while(cur<N){ if (max < student[cur].average){ max=student[cur].average; maxindex=cur; }else if (min > student[cur].average){ min = student[cur].average; minindex=cur; } cur++; } printf("***************the max student infomation***************\n"); printfinfo(maxindex); printf("***************the min student infomation***************\n"); printfinfo(minindex); } void printfinfo(int index){ printf("number is %d\n",student[index].number); printf("name is %s\n",student[index].name); printf("scores is :\n"); for(int j=0;j<5;j++){ printf("%f ",student[index].scores[j]); } printf("\n"); printf("averages is %f\n",student[index].average); printf("\n"); }
总结: 用到了函数申明,它的作用是函数间相互调用可以忽略函数所在的先后顺序。另外用到了结构体数组的相关知识。总体说来都很基础。