一直对嵌入式底层开发感兴趣,无奈基础实在有些薄弱,买了本嵌入式入门书,没有找到书中练习题的答案,于是准备亲自动手实现下。开此博客望与大家共同讨论进步。因为内容都很基础,望大方之家不要见笑。
题目:有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");
}
总结: 用到了函数申明,它的作用是函数间相互调用可以忽略函数所在的先后顺序。另外用到了结构体数组的相关知识。总体说来都很基础。