帮我看看这那出问题了

来源:百度知道 编辑:UC知道 时间:2024/05/28 17:36:09
#define N 6
#include<stdio.h>
#include<stdlib.h>
typedef struct studen
{char name[20];
int rank;
int average;
}STU;

STU *read()
{
FILE *fp;
STU *student
student=(STU *)malloc(6*sizeof(STU));
if((fp=fopen("9-20.dat","r"))==NULL)printf("Open file erro!\n");
fread(student,sizeof(STU),6,fp);
fclose(fp);
return(student);
}

void printf(char *name,STU *student1)
{
int i=0;
while(name!=student1.name)
{
student1++;
i++;
if(i>7){printf("NO nanme\n");break;}
}
printf("Name :%s\n",student1.name);
printf("Rank :%d\n",student1.rank);
printf("Average:%d\n",student1.average);
}

main()
{
char name[20];
STU student1[N];
student1=read()

首先,这里
STU *read()
{
FILE *fp;
STU *student

后面没有分号,不知道是不是粘贴的问题

第二,函数
void printf(char *name,STU *student1)

student1是一个STU类的指针,所以后面不能用"."符号,要用"->"符号,所有的student1所拥有的对象,比如
student1.name 改成 student1->name

然后函数
void printf(char *name,STU *student1)

你是想写
void print(char *name,STU *student1) 吧?估计是笔误。

最后,main()里最好用指针来赋值
///////////////////////////////////////

//代码已改好,你看看行不行
#include "stdafx.h"
#include<stdio.h>
#include<math.h>
#include<stdlib.h>

#define N 6
#include<stdlib.h>
typedef struct studen
{char name[20];
int rank;
int average;
}STU;

STU *read()
{
FILE *fp;
STU *student;
student=(STU *)malloc(6*sizeof(STU));
if((fp=fopen("9-20.dat","r"))==NULL)printf("Open file err