难以理解的错误

来源:百度知道 编辑:UC知道 时间:2024/05/21 07:52:10
#include <stdio.h>
#include <stdlib.h>
#define N 8
struct slist
{ double s;
struct slist *next;
};
typedef struct slist STREC;
double fun(STREC *h)
{STREC *q;
q=h;
double min;
int yes=1;
while(q->next!=NULL);
{
if(yes) {min=q->s;yes=0;}
if(q->s<min) min=q->s;
}
return min;
}
STREC * creat (double *s)
{
STREC *h,*p,*q;
int i=0;
h=p=(STREC*)malloc(sizeof(STREC));
p->s=0;
while(i<N) /*产生8个节点的链表,各分数存入链表中*/
{q=(STREC*) malloc(sizeof(STREC));
p->s=s[i]; i++; p->next=q; p=q;
}
p->next=NULL;
return h; /*返回链表的首地址*/
}
outlist(STREC *h)
{
STREC *p;
p=h;
printf("head");
do
{printf("->%2.0f ",p->s);p=p->next;} /*输出各分

STREC *q;
q=h;
double min;
int yes=1;

这三句的顺序有错误,所有的变量定义都要放在函数的开头,改为如下形式:

STREC *q;
double min;
int yes=1;
q=h;

什么啊?

outlist(STREC *h) 这一行代码 应该有个返回类型!比如加个 void. 变成void outlist(STREC *h)