C語言文件編程題目(一)

1.有五個學生,每個學生有 3 門課的成績,從鍵盤輸入以上數據(包括學生 號,姓名,三門課成績),
計算出平均成績,將原有的數據和計算出的平均分數 存放在磁盤文件"stud"中。

#include<stdio.h>
#include<stdlib.h>
struct student {//定義一個結構體,裏面包含的成員屬性有學號、姓名、成績、平均分
	char num[10];
	char name[5];
	int score[3];
	float avg;
} stu[5];
int main() {
	int i,j,sum;
	FILE *fp;
	for(i=0; i<5; i++) {//通過循環輸入每個學生的學號、姓名、成績
		printf("請輸入第%d位學生學號:\n",(i+1));
		scanf("%s",stu[i].num);
		printf("請輸入學生姓名:\n");
		scanf("%s",stu[i].name);
		sum = 0;
		for(j=0; j<3; j++) {
			printf("請輸入第%d門科目成績:\n",(j+1));
			scanf("%d",&stu[i].score[j]);
			sum +=stu[i].score[j];
		}
		stu[i].avg = sum / 3.0;
	}
	fp = fopen("E:\\stud.txt","w");
	for(i=0; i<5; i++) {//在控制檯上顯示結果
		printf("姓名:%s 學號:%s:",stu[i].name,stu[i].num);
		for(j=0; j<3; j++) {
			printf("學科%d成績%d:",(j+1),stu[i].score[j]);
		}
		printf("平均分%.2f\n",stu[i].avg);
	}
	for(i=0; i<5; i++) { //將輸入的數據以及平均分寫入文件
		fprintf(fp,"姓名:%s 學號:%s ",stu[i].name,stu[i].num);
		for(j=0; j<3; j++) {
			fprintf(fp,"學科%d成績:%d ",(j+1),stu[i].score[j]);
		}
		fprintf(fp,"平均分%.2f\n",stu[i].avg);
		fputc('\n',fp);//換行
	}

	fclose(fp);
}

運行結果如下:

(1)在控制檯顯示結果

 

(2)顯示寫入文件中的數據

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章