HEAVEN00011 2021-12-22 10:35 采纳率: 83.3%
浏览 37
已结题

运行时错误,一直想不明白哪里错了

#include<stdio.h>
#include<stdlib.h>
typedef struct line
{
int a;
struct line *f;
}line,*linek;
int i;
int e,d;

void make(linek n[],int b[])
{
linek p;
for(i=1;i<7;i++)
{
for(e=1;e<7;e++)
{
if(b[e]==0)
{
b[e]=10;
printf("%d ",e-1);
break;
}
}
p=n[e];
while(p!=NULL)
{
p=p->f;
b[p->a]=b[p->a]-1;
}
}
}
int main()
{
linek n[7];
n[0]=(linek)malloc(sizeof(line));
n[0]->a=0;
n[0]->f=NULL;
for(i=1;i<7;i++)
{
n[i]=(linek)malloc(sizeof(line));
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->a=3;
p->f=NULL;
y->f=p;
y=p;
p=(linek)malloc(sizeof(line));
p->f=NULL;
p->a=4;
y->f=p;
p=(linek)malloc(sizeof(line));
p->a=2;
p->f=NULL;
n[3]->f=p;
y=p;
p=(linek)malloc(sizeof(line));
p->a=5;
p->f=NULL;
y->f=p;
p=(linek)malloc(sizeof(line));
p->a=5;
p->f=NULL;
n[4]->f=p;
p=(linek)malloc(sizeof(line));
p->a=4;
p->f=NULL;
n[6]->f=p;
y=p;
p=(linek)malloc(sizeof(line));;
p->a=5;
p->f=NULL;
y->f=p;
int b[7]={10,0,2,1,2,3,0};
make(n,b);
return 0;

}

  • 写回答

1条回答 默认 最新

  • qzjhjxj 2021-12-22 12:48
    关注

    void make(linek n[],int b[]) 函数里,while那段修改下:

            p = n[e];
            while (p != NULL)
            {
                b[p->a] = b[p->a] - 1;
                p = p->f;  //这句移下来
            }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 12月30日
  • 已采纳回答 12月22日
  • 创建了问题 12月22日

悬赏问题

  • ¥15 SPSS分类模型实训题步骤
  • ¥15 求解决扩散模型代码问题
  • ¥15 工创大赛太阳能电动车项目零基础要学什么
  • ¥20 limma多组间分析最终p值只有一个
  • ¥15 nopCommerce开发问题
  • ¥15 torch.multiprocessing.spawn.ProcessExitedException: process 1 terminated with signal SIGKILL
  • ¥15 QuartusⅡ15.0编译项目后,output_files中的.jdi、.sld、.sof不更新怎么解决
  • ¥15 pycharm输出和导师的一样,但是标红
  • ¥15 想问问富文本拿到的html怎么转成docx的
  • ¥15 我看了您的文章,遇到了个问题。