C 练习实例100
题目:有五个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成绩),计算出平均成绩,况原有的数据和计算出的平均分数存放在磁盘文件"stud"中。
程序分析:无。
程序源代码:
实例
// Created by www.runoob.com on 15/11/9.
// Copyright © 2015年 菜鸟教程. All rights reserved.
//
#include<stdio.h>
#include<stdlib.h>
typedef struct{
int ID;
int math;
int English;
int C;
int avargrade;
char name[20];
}Stu;
int main()
{
FILE*fp;
Stu stu[5];
int i,avargrade=0;
printf("请输入5个同学的信息:学生号,姓名,3门成绩:\n");
for(i=0;i<5;i++)
{
scanf("%d %s %d %d %d",&(stu[i].ID),stu[i].name,&(stu[i].math),&(stu[i].English),&(stu[i].C));
stu[i].avargrade=(stu[i].math+stu[i].English+stu[i].C)/3;
}
if((fp=fopen("stud","w"))==NULL)
{
printf("error :cannot open file!\n");
exit(0);
}
for(i=0;i<5;i++)
fprintf(fp,"%d %s %d %d %d %d\n",stu[i].ID,stu[i].name,stu[i].math,stu[i].English,
stu[i].C,stu[i].avargrade);
fclose(fp);
// system("pause");
return 0;
}
以上实例运行输出结果后:
请输入5个同学的信息:学生号,姓名,3门成绩: 1 a 60 70 80 2 b 60 80 90 3 c 59 39 89 4 e 56 88 98 5 d 43 88 78
打开 stud文件,内容如下
1 a 60 70 80 70 2 b 60 80 90 76 3 c 59 39 89 62 4 e 56 88 98 80 5 d 43 88 78 69
C 语言经典100例
人水子月
ysp***830@163.com
参考方法:
//gcc version 7.4.0 #include <stdio.h> typedef struct { int number; char name[20]; float Chinese,Math,English; float avg; }Student; int main() { Student stu[5],*ptr=NULL; ptr=stu; FILE *file=NULL; file=(FILE *)fopen("./stud","w"); printf("请输入五个学生的信息:顺序为学号,姓名,语,数,外\n例子:1 张三 80 92 78\n"); for(int i=0;i<5;i++) { scanf("%d %20s %f %f %f",&((ptr+i)->number),(ptr+i)->name,&((ptr+i)->Chinese),&((ptr+i)->Math),&((ptr+i)->English)); (ptr+i)->avg = ((ptr+i)->Chinese + (ptr+i)->Math + (ptr+i)->English)/3; } int result=fprintf(file,"学号\t%-20s\t语文\t数学\t英语\t平均成绩\n","姓名"); if(result<0) { printf("写入文件stud失败!\n"); return -1; } for(int i=0;i<5;i++) { result=fprintf(file,"%-3d\t%-20s\t%3.1f\t%3.1f\t%3.1f\t%3.1f\n",(ptr+i)->number,(ptr+i)->name,(ptr+i)->Chinese,(ptr+i)->Math,(ptr+i)->English,(ptr+i)->avg); if(result<0) { printf("写入文件stud失败!\n"); return -1; } } printf("写入文件stud成功!\n"); fclose(file); return 0; }人水子月
ysp***830@163.com