作者:佚名 时间:2023-09-09 09:25:32 阅读:(28)
今天云梦编程为大家分享一个C语言经典实例:有五个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成绩),计算出平均成绩,况原有的数据和计算出的平均分数存放在磁盘文件"stud"中,有需要的小伙伴可以参考一下
(1)、定义结构体:
使用`struct Student`定义了一个包含学生信息的结构体。每个学生具有学号、姓名、3门课成绩和平均成绩的数据成员。
(2)、主函数逻辑:
- 声明了一个包含5个学生的数组`students`,用于存储学生数据。 - 通过`scanf`函数从键盘输入每个学生的学号、姓名和3门课成绩。输入的数据通过循环逐个存储到对应的结构体成员中。 - 使用循环计算每个学生的平均成绩,并将结果存储在结构体的`average`成员中。 - 打开名为"stud"的文件,并进行错误检查。如果无法打开文件,则输出错误消息并终止程序。 - 使用循环将学生数据以特定格式写入文件。在写入过程中,使用`fprintf`函数,并检查返回值,如果返回值小于0,则表示写入文件时发生了错误,输出错误消息并终止程序。 - 关闭文件。 - 再次打开文件进行验证,并进行错误检查。如果无法打开文件,则输出错误消息并终止程序。 - 使用循环从文件中读取学生数据,并以特定格式输出到控制台进行验证。
#include "stdio.h" struct student { char num[6]; char name[8]; int score[3]; float avr; } stu[5]; int main() { int i,j,sum; FILE *fp; /*input*/ for (i=0;i<5;i++) { printf("\n please input No. %d score:\n",i); printf("stuNo:"); scanf("%s",stu[i].num); printf("name:"); scanf("%s",stu[i].name); sum=0; for (j=0;j<3;j++) { printf("score %d.",j+1); scanf("%d",&stu[i].score[j]); sum+=stu[i].score[j]; } stu[i].avr=sum/3.0; } fp=fopen("stud","w"); for (i=0;i<5;i++) if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1) printf("file write error\n"); fclose(fp); }
以上就是云梦编程为大家介绍的C语言经典实例的内容了,希望对大家有所帮助,了解更多相关文章请关注云梦编程网!