要怎样读取每个学生的各个分数啊?然后去计算它们的平均值!
[此贴子已经被作者于2006-12-7 17:15:48编辑过]
----------------解决方案--------------------------------------------------------
这个是输出的文件中的内容!
NAME AVERAGE SCORE
S.H.E. 63.50
Kerry 60.25
Sunner 58.75
gigi 52.75
Jerry 52.75
Tom 49.50
Twins 49.50
Jay 43.50
coco 37.75
Bush 23.00
----------------解决方案--------------------------------------------------------
"错误处理"这个要怎样做啊?
----------------解决方案--------------------------------------------------------
还有要怎样向那个文件中写数据啊?
----------------解决方案--------------------------------------------------------
比如数据相当多,如Hash table,将数据存储于文件,可以减少内存的占用,将余下的内存中存储重要的数据.还有就是文件的处理,比如*.doc->*.wps,必须运用文件.
当然,文件运用还有许多...
FILE *input; /*定义文件指针*/
input=fopen("文件名","打开方式(w写,r读.....当然还有许多其它的"); /*打开文件*/
fprintf(input,"格式,与printf一样", ); /*写文件*/
fscanf(input,"格式,与scanf一样", ); /*读入文件内容*/
fclose(input); /*关文件*/
----------------解决方案--------------------------------------------------------
"错误处理"这个要怎样做啊?
错误处理就是数据读取时错误(比如你要读一个数,结果遇到字符),以及文件打开的错误(比如文件不在,文件打开时出现异常)等,这时进行提示
----------------解决方案--------------------------------------------------------
呵呵!多谢!先定义一个FILE类型的指针,指向scores.dat的文件信息区!然后要怎样利用那个文件里的数据啊?
要怎样读取每个学生的各个分数啊?然后去计算它们的平均值!
最好的方法是建一个与数据类型一样的结构体,然后
fread(结构体变量地址,sizeof(struct 结构体名),1,文件指针);
当然也可以不用结构体,不过麻烦,读入方法为
fread(变量地址,sizeof(变量类型),1,文件指针);
至于平均值问题你应该会吧
----------------解决方案--------------------------------------------------------
我是这么写的!我感觉很别扭!我想肯定是错了!
#include <stdio.h>
#include <stdlib.h>
#define N 100
#include <string.h>
struct student
{
char name[12];
float score[4];
}number[N];
struct str
{
char name[12];
float scores;
}numb[N];
int main()
{
int num, i;
FILE * fp;
FILE * ffp;
int paixu(struct student name[N], int num, struct str numb[N], FILE *ffp);
scanf("%d", &num);
for(i = 0;i < num;i ++)
scanf("%s%f%f%f%f", number[i].name, &number[i].score[0], &number[i].score[1], &number[i].score[2], &number[i].score[3]);
if((fp = fopen("scores.dat", "wb")) == NULL)
{
fprintf(stdout, "wrong");
exit (0);
}
fwrite(number, 29, num, fp);
if((ffp = fopen("stat.txt", "w+")) == NULL)
{
fprintf(stdout, "wrong");
exit (0);
}
paixu(number, num, numb, ffp);
fclose(fp);
fclose(ffp);
return 0;
}
int paixu(struct student number[N], int num, struct str numb[N], FILE *ffp)
{
int i, j, temp;
char tempp[100];
for(i = 0;i < num;i ++)
{
numb[i].scores = (number[i].score[0] + number[i].score[1] + number[i].score[2] + number[i].score[3])/4.0;
}
for(i = 0;i < num - 1;i ++)
for(j = i + 1;j < num;j ++)
{
if(numb[i].scores > numb[j].scores)
{
temp = numb[i].scores;
numb[i].scores = numb[j].scores;
numb[j].scores = temp;
strcpy(tempp, numb[i].name);
strcpy(numb[i].name, numb[j].name);
strcpy(numb[j].name, tempp);
}
}
fwrite(numb, 29, num, ffp);
return 0;
}
----------------解决方案--------------------------------------------------------
帮我看一下是哪里错了!关于文件的程序要怎样调试啊?谢谢了!
----------------解决方案--------------------------------------------------------