问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

...调试时出现了unhandled exception in access violation,但是编译...

发布网友 发布时间:2024-10-24 02:30

我来回答

1个回答

热心网友 时间:2024-11-04 12:03

三个地方会报错
1:59行,printf("最小生成树的权:f%\n",cost);中应该为%f。
解决方法:你写错了,这样也会造成访问非法内存。

2:60行,delete释放内存时元素大小不定,因为你前面new 时,nodenum并没有赋值。
解决方法:应该将赋值语句
printf("请输入分支数目:\n");
scanf("%d",&edgenum);
printf("请输入节点数目:\n");
scanf("%d",&nodenum);
提前到new前,像这样

...
printf("请输入分支数目:\n");
scanf("%d",&edgenum);
printf("请输入节点数目:\n");
scanf("%d",&nodenum);
p=new EDGE[edgenum+1];
q=new int[nodenum+1];
int i=0;
int j=0;
...
3:p释放的问题同上。

附上修正后的代码:
#include <stdio.h>
typedef struct//
{
int start;
int end;
float weight;
}EDGE;
int edgenum,nodenum;
EDGE *p;
int *q;
void setfather(int edge);
int findfather (int node);
int main()
{
printf("请输入分支数目:\n");
scanf("%d",&edgenum);
printf("请输入节点数目:\n");
scanf("%d",&nodenum);
p=new EDGE[edgenum+1];
q=new int[nodenum+1];
int i=0;
int j=0;

for(i=0;i<=edgenum;i++)
{
p[i].start=0;
p[i].end=0;
p[i].weight=0;
}
for(i=0;i<=nodenum;i++)
q[i]=i;
for(i=1;i<=edgenum;i++)
{
printf("第%d条边的始节点:\n",i);
scanf("%d",&p[i].start);
printf("第%d条边的末节点:\n",i);
scanf("%d",&p[i].end);
printf("第%d条边的权值:\n",i);
scanf("%f",&p[i].weight);
}
EDGE temp={0,0,0.00};
for(i=edgenum;i>=2;i--)//冒泡排序
{
for(j=2;j<=i;j++)
{
if(p[j-1].weight>p[j].weight)
{
temp=p[j];
p[j]=p[j-1];
p[j-1]=temp;
}
}
}
printf("加的新边:%d--%d\n",p[1].start,p[1].end);
float cost=p[1].weight;
setfather(1);
for(i=2;i<=edgenum;i++)
{
if(findfather(p[i].start)!=findfather(p[i].end))
{
cost=cost+p[i].weight;
setfather(i);
printf("加的新边:%d--%d\n",p[i].start,p[i].end);
}
}
printf("最小生成树的权:%f\n",cost);
delete []q;
delete []p;
q=0;
p=0;
return 0;
}
void setfather(int edge)
{
int snode =findfather(p[edge].start);
int enode =findfather(p[edge].end);
if (enode<snode)
q[snode]=enode;
else
q[enode]=snode;
}
int findfather (int node)
{
while (node!=q[node])
node=q[node];
return node;
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
虹口区东余杭路541弄算几号地块?12年下半年号称要拆,附近都在拆类,明... 我想知道新建路东余杭路这二年有没有拆迁规划? 手机通话变声器哪种好 变声器哪个好用 我准备7月底开始复习考研,还来得及吗 大四下学期考研还来得及吗 考研还来得及吗 ...在脊椎骨右边靠脊椎骨附近疼,是什么原因,大概有半个多月了,弯腰时... 电脑开着总是无缘无故蓝屏提示 电脑开着总是无缘无故蓝屏 电脑无缘无故蓝屏怎么回事探究电脑突然蓝屏的原因 败犬女王中有梁静茹吗?如果有,那她具体演了什么?她演技如何?FISH_百度... 电影初恋红豆冰宣传片的那首歌叫什么名字啊 alienware M18多钱?中国有卖吗? 夏季如何正确保存鸡蛋 夏季正确保存鸡蛋的方法 Alienware M18x 好顶级啊,游戏超级爽不 安装了外置声卡后用什么杀毒软件?求大神! 长治有没有小额贷款放款前不收任何费用 【车主点评:庞然巨兽般的开拓者】 交警的好易机是不是不能办理扣分? 请问华硕U46SM的光驱厚度是多少,再就是光驱的接口是SATA2 还是SATA3... 鸡包鱼翅的味道怎么样? 怎样形容鱼翅芙蓉包的味道? [求助]新药保护品种的临床试验一定要双盲吗? 成都锦江区那边的华润万家超市从东站过去怎么坐车啊,91路能直达么? 北京丰台区国家开放大学中专可以参加普通高考吗学历教育厅认证不出来... 关于行政程序的分类标准,下列说法正确的有( )。 你们女生是不是特别喜欢男生的胸肌和腹肌 打富济贫 女生喜欢有胸肌的男生吗?不是那种太大的! 宝宝性格的形成与教养方式有什么关系? 卫生间安装有排风扇,是不是就不用安装中央新风系统了? ...&lt;了结&gt;&gt;和&lt;&lt;觉悟&gt;&gt;的歌词和其它所有歌的歌词(前两首:急!!!)_百度... 谁知道一首歌名字 我只记得什么一点歌词,就是括号里的[错错错。。。都... 阳后洗澡可能有生命危险?!“洗澡”用英文怎么说?可不是wash body! 十月份双子座运势2023 2023双子座全年运势 双子座2023年十月份运势(双子座运势2023运势) 《花醉》歌词 (周彦宏)??? ...延时防抖方面的问题,使用软件防抖(汇编、C语言均可)! 汁烤鱿鱼饭 hp p2015serise 打印黑道 单片机防抖问题 27个200等于多少? 如何给惠普p2015墨盒加粉 27✖️()➕27=27✖️200怎么去计算? 合肥高中家教哪家好? 27×201_27简便方法? 54×45+27×110的简便运算? 一个半月的跆拳道怎么样 江西田友生化有限公司怎么样 住在合肥八中附近,想找一对一化学和物理家教,最好是老师