C语言中如何使用calloc函数。如何把数据储存到文本文件中
大家好。学习了一个学期的C语言。书本的知识点是看懂了。但一到综合实验。我头都大了。
这两天一直在做综合实验。但是怎么做也做不好。编好了又不对。唉。。所以想来请教
一下高手们,指点指点
这是实验的内容:
某班期末考试科目为数学(MT)、英语(EN)和物理(PH),每个班级4人。学生的信息用结构体描述,包括学号(NO)、姓名、数学(MT)、英语(EN)、物理(PH)、总分(grade).
(1)编写分配一块内存的程序init。
(2)编写完成读进4个学生的信息的函数readin,函数能将这些值存进由函数init申请的存储块中。
(3)编写计算这些学生的总分的函数product。
(4)编写一个sort函数,用来将存储块中的4个学生记录组成的数据读入一数组a中,然后将a中的数据按从总分从小到大的顺序排列。
(5)再用init分配一块内存,将数组a的内容存到这块内存中去,然后把数组a的数据存储到一个名为myData.txt的文本文件中去。
(6)在主程序中调用他们,输出第一次申请的内存块中的内容和数组排序后的内容,按反序输出第2次申请的内存块中的内容。
这是实验的要求:
ex.h
包含程序需要的头文件,声明各个函数
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
const int SIZE=4;
struct student {
int NO; char name[20];
float course[3];
float grade;
}
struct student *init(int);
void reading(struct student *);
void product(struct student *);
void sort(struct student *, struct student a[],int);
2.init.c
申请4个存储struct student数据的空间,然后返回存储块的地址,因此返回类型是指针。
3.readin.c
将从键盘输入的数据存储到内存块中,无需返回值。
4.product.c
总分的计算是首先取出存储块的最后一个元素,然后依次用它前面的元素和它相加。
5.sort.c
使用选择法进行排序。
6.ex.c
7.建立一个“项目文件”,只包括组成程序的文件,文件名为
ex.prj。
程序编译成功后,输入4个学生的数据进行测试
第一小题。他要返回一个值。我是这样写的:
#include<stdio.h>
#define NULL 0
struct student
{int NO;
char name[20];
float course[4];
float grade;
struct student *next;
};
struct student *init(int n)
{struct student *stu;
stu=(struct student *)calloc(unsigned n,unsigned size);
return(stu);
}
但是伴以不能通过。不明白calloc(unsigned n,unsigned size)这个函数如何使用。以及第五小题的。用什么语句。可以讲数据储存到文本文件当中。
请高手们指点一下了。谢谢