zzzjh112233
2021-11-26 01:26
采纳率: 0%
浏览 32

关于pta喊山的问题,来看看代码,部分正确,有段错误😭

img

img

img

img

#include <stdio.h>
int main()
{
int n,m,k,i,j,p,f;
int v1,v2;
scanf("%d%d%d",&n,&m,&k);
int b[n+2][n+2];//邻接矩阵
int a[k+2];//存储要查询的山头
int c[n+2]; //传输的距离
int d[n+2];//队列
int e[n+2];//用来标记是否访问过
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
b[i][j]=0;
}
}
for(i=1;i<=n;i++)
{
c[i]=0;
e[i]=0;
}
for(i=1;i<=m;i++)
{
scanf("%d%d",&v1,&v2);
b[v1][v2]=1;
b[v2][v1]=1;
}
for(i=1;i<=k;i++)
{
scanf("%d",&a[i]);
}
int t,flag,z=-1,x,y;
for(i=1;i<=k;i++)
{
flag=0;
z=-1;
int front=0,rear=0;
d[rear++]=a[i];
x=0,y=0;
e[a[i]]=1;
while(1)
{
t=d[front++];
for(j=1;j<=n;j++)
{
if(b[t][j]!=0&&e[j]==0)
{
flag=1;
c[j]=x+1;
d[rear++]=j;
e[j]=1;
y=c[j];
}
}
if(flag==1)
{
x=y;
}
flag=0;
if(front==rear)
break;
}
int max=0;
for(p=1;p<=n;p++)
{
if(c[p]>max)
{
x=p;
max=c[p];
}
}
if(max!=0)
printf("%d\n",x);
else
printf("%d\n",0);
for(f=1;f<=n;f++)
{
c[f]=0;
e[f]=0;
}
}
}

图片转代码服务由CSDN问答提供 功能建议

  .01:21
                  aiea
                  m二1
提交结果 X
                                    分 题 编译
   提交时间 状态
                                     数 器
                                              编
   2021/11/26 C
                       部分正确7 程
   00:18:34 (gco
                                              题
   测试
               结果 分数 耗时 内存
   点
                                       2 488
   0 答案正确15
                                       ms KB
                                       3 320
               段错误①D
                                       ms KB
                                       3 448
   2 段错误①0
                                       ms KB
                                       3 436
   3 段错误①D
                                       ms KB
                                       3 312
   4 答案正确2
                                       ms KB
代码
                       #include<stdio.h
  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • 对于你这个题目可以参考如下链接:

    如果对你有帮助,可以给我个采纳吗,谢谢!!

    评论
    解决 无用
    打赏 举报
  • mzhan017 2021-11-26 06:55

    .对v1和v2的输入要判断是否越界

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题