linux cプログラミング入門練習問題

1801 ワード

ずっと埋め込み式の底層の開発に興味を持って、仕方なく基礎は本当に少し弱くて、本の埋め込み式の入門書を買って、本の中の練習問題の答えを見つけていないで、そこで自分で実現するつもりです.このブログを開いて、皆さんと一緒に進歩について議論したいと思います.内容が基本なので、大方の家は笑わないでください.
テーマ: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***************
"); printfinfo(maxindex); printf("***************the min student infomation***************
"); printfinfo(minindex); } void printfinfo(int index){ printf("number is %d
",student[index].number); printf("name is %s
",student[index].name); printf("scores is :
"); for(int j=0;j<5;j++){ printf("%f ",student[index].scores[j]); } printf("
"); printf("averages is %f
",student[index].average); printf("
"); }
まとめ:関数間相互呼び出しが関数の存在の前後順序を無視できる役割を果たす関数宣言が用いられた.また,構造体配列に関する知識を用いた.全体的に基礎的です.