有5个学生,每个学生有3门课的成绩,从键盘输入学生数据(包括学生号、姓名、三门课成绩),计算平均成绩,将原有数据和计算出的平均分数存放在磁盘文件“stud”中

对于平均成绩的思路就是:把平均成绩当做结构体的一项

在输入3门课成绩以获得平均成绩时,要注意在c语言中,三门成绩要单独输入,不能和学号、姓名一起输入。如果这样输入,程序不会报错,但始终运行不出来。

struct student//定义结构体

{

int num;

char name[10];

int score[3];

float ave;

}stu[5];

int main(int argc, char *argv[]) {

int i,j,sum,t;

FILE *fp;

struct student p,temp,re[6];

for(i=0;i<5;i++)//结构体赋值

{

printf("输入第%d条记录\n",i+1);

scanf("%d,%s",&stu[i].num,stu[i].name);

printf("请输入三门课成绩\n");

scanf("%d,%d,%d",&stu[i].score[0],&stu[i].score[1],&stu[i].score[2]);

sum=0;

sum=stu[i].score[0]+stu[i].score[1]+stu[i].score[2];

stu[i].ave=sum/3.0;

}

if((fp=fopen("stud.txt","w"))==NULL)//写入文件

{

printf("cannot open stud.txt\n");

exit(0);

}

for(i=0;i<5;i++)

fwrite(&stu[i],sizeof(struct student),1,fp);

fclose(fp);

if((fp=fopen("stud.txt","r"))==NULL)//读取文件

{

printf("cannot open stud.txt\n");

exit(0);

}

for(i=0;i<5;i++)

{

fread(&stu[i],sizeof(struct student),1,fp);

printf("%d,%s,%d,%d,%d,%6.2f\n",stu[i].num,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].ave);

}

fclose(fp);

printf("\n");}

按照平均分进行排序

for(i=0;i<4;i++)//文件排序

for(j=i+1;j<5;j++)

if(stu[i].ave>stu[j].ave)

{

temp=stu[i];

stu[i]=stu[j];

stu[j]=temp;

}

if((fp=fopen("stu_sort.txt","w"))==NULL)

{

printf("cannot open stud.txt\n");

exit(0);

}

for(i=0;i<5;i++)

fwrite(&stu[i],sizeof(struct student),1,fp);

fclose(fp);

if((fp=fopen("stu_sort.txt","r"))==NULL)

{

printf("cannot open stud.txt\n");

exit(0);

}

for(i=0;i<5;i++)

{

fread(&stu[i],sizeof(struct student),1,fp);

printf("%d,%s,%d,%d,%d,%6.2f\n",stu[i].num,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].ave);

}

fclose(fp);

插入新的学生数据

printf("请输入插入学生数据:\n");

scanf("%d,%s",&p.num,p.name);

printf("请输入三门课成绩\n");

scanf("%d,%d,%d",&p.score[0],&p.score[1],&p.score[2]);

sum=0;

sum=p.score[0]+p.score[1]+p.score[2];

p.ave=sum/3.0;

if((fp=fopen("stu_sort.txt","r"))==NULL)

{

printf("cannot open stud.txt\n");

exit(0);

}

for(i=0;i<5;i++)

{

fread(&stu[i],sizeof(struct student),1,fp);

if(stu[i].ave>p.ave)

{

t=i;break;

}

else

t=5;

}

fclose(fp);

fp=fopen("sdent.txt","a");

if(t==5)

{

for(i=0;i<5;i++)

fwrite(&stu[i],sizeof(struct student),1,fp);

fwrite(&p,sizeof(struct student),1,fp);

}

else if(t==0)

{

fwrite(&p,sizeof(struct student),1,fp);

fwrite(&stu[i],sizeof(struct student),1,fp);

}

else

{

for(i=0;i

读取插入后新的学生数据

//读取插入后文件

if((fp=fopen("sdent.txt","r"))==NULL)

{

printf("cannot open stud.txt\n");

exit(0);

}

for(i=0;i<6;i++)

{

fread(&re[i],sizeof(struct student),1,fp);

printf("%d,%s,%d,%d,%d,%6.2f\n",re[i].num,re[i].name,re[i].score[0],re[i].score[1],re[i].score[2],re[i].ave);

}

fclose(fp);

c语言50个学生3课成绩平均成绩,C语言:有5个学生,每个学生有3门课的成绩,从键盘输入学生数据,计算平均成绩...相关推荐

  1. 【C语言】#文件操作#有5个学生,每个学生有3门课程的成绩,从键盘输入以上数据(包括学号、姓名、3门课成绩),计算出平均成绩,将原有数据和计算出的平均分数存放在磁盘文件stud中。

    题目: (1)有5个学生,每个学生有3门课程的成绩,从键盘输入以上数据(包括学号.姓名.3门课成绩),计算出平均成绩,将原有数据和计算出的平均分数存放在磁盘文件stud中. 设5名学生的学号.姓名和3 ...

  2. C语言:有N个学生,每个学生有3门课程的成绩,从键盘输入以上数据(包括学号、姓名、3门课程的成绩),计算出平均成绩,将原有数据和计算出的平均成绩存放在磁盘文件stu_list.txt中。

    /*有N个学生,每个学生有3门课程的成绩,从键盘输入以上数据(包括学号.姓名.3门课程的成绩),计算出平均成绩,将原有数据和计算出的平均成绩存放在磁盘文件stu_list.txt中.*/ /*以5个学 ...

  3. java键盘录入三个学生信息,编一程序,从键盘输入学生的三门课程成绩,求其总... 编一个程序,功能是从键盘输入三个整数,将其由小到......

    导航:网站首页 > 编一程序,从键盘输入学生的三门课程成绩,求其总... 编一个程序,功能是从键盘输入三个整数,将其由小到... 编一程序,从键盘输入学生的三门课程成绩,求其总... 编一个程序 ...

  4. 有五个学生,每个学生有3门课程的成绩,从键盘输入学生数据(包括学号、姓名、3门课程成绩),计算出平均成绩,将原有的数据和计算出的平均分数存放在磁盘文件stud中。

    有五个学生,每个学生有3门课程的成绩,从键盘输入学生数据(包括学号.姓名.3门课程成绩),计算出平均成绩,将原有的数据和计算出的平均分数存放在磁盘文件stud中. #include <stdio ...

  5. 入门的第一个C++程序。从键盘输入学生姓名,然后输出指定格式的内容。

    PTA 作业罢了,仅供参考. 入门的第一个C++程序.从键盘输入学生姓名,然后输出指定格式的内容. 输入格式: 学生姓名. 输出格式: Hello, C++! My name is <学生姓名& ...

  6. C语言scanf:读取从键盘输入的数据(含输入格式汇总表)

    程序是人机交互的媒介,有输出必然也有输入,第三章我们讲解了如何将数据输出到显示器上,本章我们开始讲解如何从键盘输入数据.在C语言中,有多个函数可以从键盘获得用户输入: scanf():和 printf ...

  7. C语言实战题目:从键盘输入数字,计算其中正数的个数,并且计算所有正数的和

    C语言实战题目:从键盘输入数字,计算其中正数的个数,并且计算所有正数的和 (遇到负数跳出本次循环继续重新输入,如果遇到0,则结束输入,输出答案) [for循环结构+if选择控制结构] #include ...

  8. C语言:键盘输入年月日,计算这一天是这一年的第几天

    键盘输入年月日,计算这一天是这一年的第几天           对一维字符串数组按照字典顺序排序输出          C语言简单练习题之键盘输入一个字符数组,将其中的大写字母删除 比如输入20201 ...

  9. 用C语言编写5个学生,每个学生有3门课程成绩,从键盘输入学生数据(学号,姓名,3门成绩)计算平均成绩,将成绩放入磁盘文件stud中

    #include <stdio.h> #include<stdlib.h> #define SIZE 2 struct Student  { int num;    char ...

最新文章

  1. spinner 下拉框控件
  2. PDF密码去除常用工具
  3. 买房为什么要少出首付,多贷款?
  4. 浅谈工业机器人的运动停止
  5. 互联网大厂、架构设计、稳定性、高可用、必备知识点技能,进大厂必备!!快来瞧瞧吧
  6. 使用 vsftpd 服务传输文件
  7. 201671030113 李星宇 《英文文本统计分析》结对项目报告
  8. python之类和对象
  9. 使用多种算法挖掘Alexa域名数据
  10. Android 视频直播的流程总览
  11. win7如何修改html图标,Win7如何更改软件图标?Win7更改软件图标的方法
  12. 第一章 HTML基础
  13. 你真的了解牛顿第一定律吗
  14. c 语言程序设计复习,C语言程序设计复习题
  15. codeSourcery 交叉编译环境搭建
  16. ssh远程连接发送命令行
  17. centos 使用nslookup命令问题
  18. 评价标签类似淘宝评价效果功能实现
  19. (一)深入理解Bluez协议栈之蓝牙Mesh的支持(1/5)
  20. 程序员们,阿里、腾讯和百度的公司职级、薪资待遇,你有了解吗?

热门文章

  1. 《深度学习及其在生物医学中的应用》
  2. 函数计算(FC) 使用总结
  3. 各种计算机认证考试的比较~
  4. 程序员永远不要再犯的5个编程bug
  5. 全新营销时代,金融企业如何有“种”有“收”?
  6. 深圳计算机系考公难吗,深圳市考竞争比1043:1!四大考公里面最难的?
  7. shell编程(二十)shell各种符号汇总
  8. 年轻人创业项目排行榜 小型创业项目排行榜
  9. 虚拟机连不上网-主ip地址网络信息不可用 解决方案
  10. 什么样的域名算是好域名