| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 546 人关注过本帖
标题:各位C语言编程高手,帮帮我
只看楼主 加入收藏
wd1980
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2005-12-12
收藏
 问题点数:0 回复次数:3 
各位C语言编程高手,帮帮我

我是刚刚学习C语言不久的新人,今天老师布置了一题关于文件应用的排序,检验下来在文件的2个子函数处有错,请各位大人看看,帮帮我 谢谢

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
struct student
{
int num;
char name[20];
double score[3];
double avg;
};
void input(struct student a[],int n);
void sort(struct student a[],int n);
void write(struct student a[],int n);
void read(struct student a[],int n);
void print(struct student a[],int n);
void main()
{
struct student stud[5];
input(stud,5);
printf("排序前\n");
print(stud,5);
sort(stud,5);
printf("\n排序后\n");
print(stud,5);
write(stud,5);
read(stud,5);
printf("\n从文件读出的记录为:\n");
print(stud,5);
}
//输入
void input(struct student a[],int n)
{
struct student stud[5];
int i,j;
double sum;
for(i=0;i<5;i++)
{
sum=0.0;
printf("请输入第%d个学号及姓名:",i+1);
scanf("%d%s",&a[i].num,a[i].name);
fflush(stdin);
for(j=0;j<3;j++)
{
printf("请输入第%d个学号的第%d门成绩:",i+1,j+1);
scanf("%lf",&a[i].score[j]);
sum+=a[i].score[j];
}
a[i].avg=sum/3.0;
}
}
//冒泡排序
void sort(struct student a[],int n)
{
struct student stud[5],tem;
int i,j;
for(i=3;i>=0;i--)
for(j=4;j>=4-i;j--)
if(a[j].avg<a[j-1].avg)
{
tem=a[j];
a[j]=a[j-1];
a[j-1]=tem;
}
}

//文件写入
void write(struct student a[],int n);
{
struct student stud[5];
FILE *fp;
int i;
fp=fopen("paixu","wb+");
if(fp==NULL)
exit(0);
for(i=0;i<5;i++)
fwiter(&stud[i],sizeof(struct student),1,fp);
fclose(fp);
}

//文件读出
void read(struct student a[],int n);
{
struct student stud[5],b[5];
FILE *fp;
int i;
fp=fopen("paixu","r+b");
if(fp==NULL)
exit(0);
for(i=0;i<5;i++)
fread(&b[i],sizeof(struct student),1,fp);
fclose(fp);
}

//输出
void print(struct student a[],int n)
{
struct student stud[5];
int i,j;
for(i=0;i<5;i++)
{
printf("%3d %5s ",a[i].num,a[i].name);
for(j=0;j<3;j++)
printf("%5.2f\t",a[i].score[j]);
printf("%5.2f\t",a[i].avg);
printf("\n");
}
}

搜索更多相关主题的帖子: C语言 
2005-12-12 09:49
绿色奇迹
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2005-12-7
收藏
得分:0 

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
struct student
{
int num;
char name[20];
double score[3];
double avg;
};
void input(struct student a[],int n);
void sort(struct student a[],int n);
void write(struct student a[],int n);
void read(struct student a[],int n);
void print(struct student a[],int n);
void main()
{
struct student stud[5];
input(stud,5);
printf("排序前\n");
print(stud,5);
sort(stud,5);
printf("\n排序后\n");
print(stud,5);
write(stud,5);
read(stud,5);
printf("\n从文件读出的记录为:\n");
print(stud,5);
}
//输入
void input(struct student a[],int n)
{
//struct student stud[5];
int i,j;
double sum;
for(i=0;i<5;i++)
{
sum=0.0;
printf("请输入第%d个学号及姓名:",i+1);
scanf("%d%s",&a[i].num,a[i].name);
fflush(stdin);
for(j=0;j<3;j++)
{
printf("请输入第%d个学号的第%d门成绩:",i+1,j+1);
scanf("%lf",&a[i].score[j]);
sum+=a[i].score[j];
}
a[i].avg=sum/3.0;
}
}
//冒泡排序
void sort(struct student a[],int n)
{
//struct student stud[5],tem;
int i,j;
student tem;
for(i=3;i>=0;i--)
for(j=4;j>=4-i;j--)
if(a[j].avg<a[j-1].avg)
{
tem=a[j];
a[j]=a[j-1];
a[j-1]=tem;
}
}

//文件写入
void write(struct student a[],int n){

struct student stud[5];
FILE *fp;
int i;
fp=fopen("paixu","wb+");
if(fp==NULL)
exit(0);
for(i=0;i<5;i++)
fwrite(&stud[i],sizeof(struct student),1,fp);
fclose(fp);
}

//文件读出
void read(struct student a[],int n){
struct student b[5];
FILE *fp;
int i;
fp=fopen("paixu","r+b");
if(fp==NULL)
exit(0);
for(i=0;i<5;i++)
fread(&b[i],sizeof(struct student),1,fp);
fclose(fp);
}

//输出
void print(struct student a[],int n)
{
//struct student stud[5];
int i,j;
for(i=0;i<5;i++)
{
printf("%3d %5s ",a[i].num,a[i].name);
for(j=0;j<3;j++)
printf("%5.2f\t",a[i].score[j]);
printf("%5.2f\t",a[i].avg);
printf("\n");
}
}

2005-12-12 10:22
绿色奇迹
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2005-12-7
收藏
得分:0 
只能保证没错了,可是功能我没看,只是帮你改错了,编译能过
2005-12-12 10:23
wd1980
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2005-12-12
收藏
得分:0 

非常谢谢!

2005-12-13 12:15
快速回复:各位C语言编程高手,帮帮我
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024405 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved