有一个错误 死活改不了

来源:百度知道 编辑:UC知道 时间:2024/05/28 19:41:49
#include<stdio.h>
#include<alloc.h>
FILE *fi,*fo;
typedef struct OLNode
{
int i,j;
float e;
struct OLNode *right,*down;
}OLNode,*OLink;
typedef struct
{
OLink *rhead,*chead;
int m,n,t;
}CrossList;
status CreateMatrix(CrossList &M)
{
int k;
if(M) free(M);
M.m=M.n=15,M.t=20;
if(!(M.rhead=(OLink*)malloc((M.m+1)*sizeof(OLink)))) exit(1);
if(!(M.chead=(OLink*)malloc((M.n+1)*sizeof(OLink)))) exit(1);
M.rhead[]=M.chead[]=NULL;
for(k=1;k<=M.t;k++)
{
fscanf(fi,"%d %d %f\n",&i,&j,&e);
if(!(p=(OLNode * )malloc(sizeof(OLNode)))) exit(1);
p->=i;p->j=j;p->e=e;
if(M.rhead[i]==NULL||M.rhead[i]->j>j)
{
p->right=M.rhead[i];
M.rhead[i]=p;
}
else
{
for(q=M.rhead[i];q->right&&q->right->j<j;q=q->right);
{
p->right=q->right;

不只一个错误。
status 改 void, 因为没有 return
i,j,e,p,q 都没声明。

从 CreateMatrix(N); 调用看 形参应当是结构CrossList M,函数里的有关 M 处里为结构
相应的M 语句要修改。

再编译,查错吧。