#include<stdio.h>
#include<stdlib.h>
typedef struct line
{
int a;
struct line *f;
}line,*linek;
void make(linek n[],int v,int e,int r,int u[])
{
linek p;
u[v]=1;
p=n[v]->f;
while(p!=NULL)
{
v=p->a;
if(u[v]!=1)
{
if(v==r)
{
printf("1");
break;
}
make(n,v,e,r,u);
p=p->f;
}
}
}
int main()
{
linek n[7];
int i;
n[0]->a=0;
n[0]->f=NULL;
for(i=1;i<7;i++)
{
n[i]->a=i;
n[i]->f=NULL;
}
linek p,y;
p=(linek)malloc(sizeof(line));
p->f=NULL;
p->a=2;
n[1]->f=p;
y=p;
p=(linek)malloc(sizeof(line));
p->f=NULL;
p->a=4;
y->f=p;
p=(linek)malloc(sizeof(line));
p->f=NULL;
p->a=5;
n[2]->f=p;
p=(linek)malloc(sizeof(line));
p->f=NULL;
p->a=6;
n[3]->f=p;
y=p;
p=(linek)malloc(sizeof(line));
p->f=NULL;
p->a=5;
y->f=p;
p=(linek)malloc(sizeof(line));
p->f=NULL;
p->a=2;
n[4]->f=p;
p=(linek)malloc(sizeof(line));
p->f=NULL;
p->a=4;
n[5]->f=p;
p=(linek)malloc(sizeof(line));
p->f=NULL;
p->a=6;
n[6]->f=p;
int v;
int e,r;
scanf("%d%d",&e,&r);
v=e;
int u[7]={0,0,0,0,0,0,0};
make(n,v,e,r,u);
return 0;
}
linek是指针,你申请了一个7个指针的数组,但是没有申请空间就开始用了,不奔溃就怪,不是不让输入,而是异常退出。还有make函数用了递归,但是没有退出条件。先打好基础再继续吧,或者先看看别人的代码
在return 0前面加system("pause");试试