c语言50个学生3课成绩平均成绩,C语言:有5个学生,每个学生有3门课的成绩,从键盘输入学生数据,计算平均成绩...
有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门课的成绩,从键盘输入学生数据,计算平均成绩...相关推荐
- 【C语言】#文件操作#有5个学生,每个学生有3门课程的成绩,从键盘输入以上数据(包括学号、姓名、3门课成绩),计算出平均成绩,将原有数据和计算出的平均分数存放在磁盘文件stud中。
题目: (1)有5个学生,每个学生有3门课程的成绩,从键盘输入以上数据(包括学号.姓名.3门课成绩),计算出平均成绩,将原有数据和计算出的平均分数存放在磁盘文件stud中. 设5名学生的学号.姓名和3 ...
- C语言:有N个学生,每个学生有3门课程的成绩,从键盘输入以上数据(包括学号、姓名、3门课程的成绩),计算出平均成绩,将原有数据和计算出的平均成绩存放在磁盘文件stu_list.txt中。
/*有N个学生,每个学生有3门课程的成绩,从键盘输入以上数据(包括学号.姓名.3门课程的成绩),计算出平均成绩,将原有数据和计算出的平均成绩存放在磁盘文件stu_list.txt中.*/ /*以5个学 ...
- java键盘录入三个学生信息,编一程序,从键盘输入学生的三门课程成绩,求其总... 编一个程序,功能是从键盘输入三个整数,将其由小到......
导航:网站首页 > 编一程序,从键盘输入学生的三门课程成绩,求其总... 编一个程序,功能是从键盘输入三个整数,将其由小到... 编一程序,从键盘输入学生的三门课程成绩,求其总... 编一个程序 ...
- 有五个学生,每个学生有3门课程的成绩,从键盘输入学生数据(包括学号、姓名、3门课程成绩),计算出平均成绩,将原有的数据和计算出的平均分数存放在磁盘文件stud中。
有五个学生,每个学生有3门课程的成绩,从键盘输入学生数据(包括学号.姓名.3门课程成绩),计算出平均成绩,将原有的数据和计算出的平均分数存放在磁盘文件stud中. #include <stdio ...
- 入门的第一个C++程序。从键盘输入学生姓名,然后输出指定格式的内容。
PTA 作业罢了,仅供参考. 入门的第一个C++程序.从键盘输入学生姓名,然后输出指定格式的内容. 输入格式: 学生姓名. 输出格式: Hello, C++! My name is <学生姓名& ...
- C语言scanf:读取从键盘输入的数据(含输入格式汇总表)
程序是人机交互的媒介,有输出必然也有输入,第三章我们讲解了如何将数据输出到显示器上,本章我们开始讲解如何从键盘输入数据.在C语言中,有多个函数可以从键盘获得用户输入: scanf():和 printf ...
- C语言实战题目:从键盘输入数字,计算其中正数的个数,并且计算所有正数的和
C语言实战题目:从键盘输入数字,计算其中正数的个数,并且计算所有正数的和 (遇到负数跳出本次循环继续重新输入,如果遇到0,则结束输入,输出答案) [for循环结构+if选择控制结构] #include ...
- C语言:键盘输入年月日,计算这一天是这一年的第几天
键盘输入年月日,计算这一天是这一年的第几天 对一维字符串数组按照字典顺序排序输出 C语言简单练习题之键盘输入一个字符数组,将其中的大写字母删除 比如输入20201 ...
- 用C语言编写5个学生,每个学生有3门课程成绩,从键盘输入学生数据(学号,姓名,3门成绩)计算平均成绩,将成绩放入磁盘文件stud中
#include <stdio.h> #include<stdlib.h> #define SIZE 2 struct Student { int num; char ...
最新文章
- spinner 下拉框控件
- PDF密码去除常用工具
- 买房为什么要少出首付,多贷款?
- 浅谈工业机器人的运动停止
- 互联网大厂、架构设计、稳定性、高可用、必备知识点技能,进大厂必备!!快来瞧瞧吧
- 使用 vsftpd 服务传输文件
- 201671030113 李星宇 《英文文本统计分析》结对项目报告
- python之类和对象
- 使用多种算法挖掘Alexa域名数据
- Android 视频直播的流程总览
- win7如何修改html图标,Win7如何更改软件图标?Win7更改软件图标的方法
- 第一章 HTML基础
- 你真的了解牛顿第一定律吗
- c 语言程序设计复习,C语言程序设计复习题
- codeSourcery 交叉编译环境搭建
- ssh远程连接发送命令行
- centos 使用nslookup命令问题
- 评价标签类似淘宝评价效果功能实现
- (一)深入理解Bluez协议栈之蓝牙Mesh的支持(1/5)
- 程序员们,阿里、腾讯和百度的公司职级、薪资待遇,你有了解吗?