要怎样读取每个学生的各个分数啊?然后去计算它们的平均值!
[此贴子已经被作者于2006-12-7 17:15:48编辑过]

该学习了。。。
[此贴子已经被作者于2006-12-7 17:15:48编辑过]

 2006-12-07 16:42
	    2006-12-07 16:42
  这个是输出的文件中的内容!
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

 2006-12-07 16:46
	    2006-12-07 16:46
   2006-12-07 16:50
	    2006-12-07 16:50
   2006-12-07 16:58
	    2006-12-07 16:58
  比如数据相当多,如Hash table,将数据存储于文件,可以减少内存的占用,将余下的内存中存储重要的数据.还有就是文件的处理,比如*.doc->*.wps,必须运用文件.
当然,文件运用还有许多...
FILE *input; /*定义文件指针*/
input=fopen("文件名","打开方式(w写,r读.....当然还有许多其它的");  /*打开文件*/
fprintf(input,"格式,与printf一样", ); /*写文件*/
fscanf(input,"格式,与scanf一样", ); /*读入文件内容*/
fclose(input); /*关文件*/
 2006-12-07 17:29
	    2006-12-07 17:29
  错误处理就是数据读取时错误(比如你要读一个数,结果遇到字符),以及文件打开的错误(比如文件不在,文件打开时出现异常)等,这时进行提示

 2006-12-07 20:46
	    2006-12-07 20:46
  最好的方法是建一个与数据类型一样的结构体,然后
fread(结构体变量地址,sizeof(struct 结构体名),1,文件指针);
当然也可以不用结构体,不过麻烦,读入方法为
fread(变量地址,sizeof(变量类型),1,文件指针);
至于平均值问题你应该会吧

 2006-12-07 20:55
	    2006-12-07 20:55
  我是这么写的!我感觉很别扭!我想肯定是错了!
#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;
}

 2006-12-08 13:39
	    2006-12-08 13:39
   2006-12-08 14:23
	    2006-12-08 14:23