急急!!!!!!!!!请各位专家帮一下!我的程序为什么在TC下不能运行?请帮改一下!谢谢!
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#define NULL 0
#define keytype int
typedef struct node
{
keytype data;
struct node *next;
}NodeType;
main()
{
NodeType *la=NULL;
NodeType *p;
int k;
scanf( "%d\n ",&k);
la=HeadCreat();
p=Seq_search(la,k);
if(p!=NULL)
printf( "Find!, The Locatin is:%x,It 's data is %d\n ",p,p-> data);
else
printf( "Sorry,can 't find! ");
}
NodeType *HeadCreate()
{ NodeType *head=NULL,*t;
keytype x;
int max;
scanf( "%d\n ",&max);
x=Srand(max);
while (x!=-9999)
{
t=(NodeType *)malloc(sizeof (NodeType));
t-> data=x;
t-> next=head;
head=t;
}
return head;
}
int Srand(max)
{int i;
srand((unsigned)time(NULL));
for(i=0;i <max;i++)
{
printf( "%d\n ",rand());
return rand();
}
}
NodeType Seq_search(NodeType *head,keytype k)
{
NodeType *p;
p=head-> next;
while(p!=NULL&&p-> data!=k)
p=p-> next;
return p;
}
[解决办法]
int Srand(max)这是什么东西max 没有类型吗?
for(i=0;i <max;i++)
{
printf( "%d\n ",rand());
return rand();
}
永远只会执行一次,return 后就跳出函数了
while (x!=-9999)
{
t=(NodeType *)malloc(sizeof (NodeType));
t-> data=x;
t-> next=head;
head=t;
}
因而这个是死循环
不懂你的语意,无法帮你改