c语言编译 错误报告,请C语言大牛帮我解决下TSP问题,实在是不知道哪里错了,编译的时候没有错,一执行就发送错误报告...

该代码实现了一个计算两点间距离的二维数组,并寻找最短路径的算法。通过初始化距离矩阵并不断更新最小距离,最终输出路径和总距离。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

满意答案

00e27ab806e4881f8254fe7ae8741834.png

guiymud7891

2014.02.12

00e27ab806e4881f8254fe7ae8741834.png

采纳率:55%    等级:12

已帮助:25976人

你看改成这样对吗?

#include

#include

int main() {

int i, j, a, array[100], temp, visit[100];

double min, start, dist[100][100];

int x[100]= { 35, 2, 61, 4, 5, 12, 71, 52, 70, 47, 4, 97, 16, 56, 32, 46,

72, 26, 11, 36, 39, 36, 17, 56, 17, 10, 25, 54, 100, 99, 46, 94,

12, 57, 32, 94, 81, 81, 63, 52, 43, 3, 53, 78, 63, 16, 93, 79, 5,

48, 100, 95, 17, 69, 6, 9, 92, 60, 98, 52, 60, 12, 53, 15, 51, 73,

42, 26, 63, 61, 92, 94, 99, 73, 44, 79, 20, 10, 31, 80, 71, 31, 91,

87, 45, 98, 20, 97, 2, 62, 85, 23, 29, 56, 61, 59, 50, 92, 86, 48 };

int

y[100]= { 70, 56, 46, 99, 5, 31, 13, 10, 28, 65, 90, 20, 22, 89,

46, 59, 72, 12, 12, 73, 71, 2, 87, 4, 18, 76, 77, 95, 5,

32, 72, 56, 53, 19, 97, 22, 27, 42, 55, 3, 3, 48, 96, 17,

75, 59, 47, 63, 8, 43, 55, 11, 38, 98, 10, 68, 8, 23, 41,

52, 37, 61, 51, 33, 75, 72, 58, 62, 91, 100, 1, 25, 71, 90,

99, 56, 54, 45, 79, 56, 6, 5, 29, 39, 42, 61, 58, 68, 41,

27, 30, 23, 83, 51, 67, 93, 84, 61, 21, 39 };

for (i=1; i<100; i++)

visit[i]=1;

min=0.0;

for (i=0; i<100; i++)

for (j=0; j<100; j++)

dist[i][j]=sqrt((x[i]-x[j])*(x[i]-x[j])+(y[i]-y[j])*(y[i]-y[j]));

for (i=0; i<100; i++)

dist[i][i]=10000.0;

array[0]=1;

visit[0]=0;

a=0;

for (i=1; i<100; i++) {

start=dist[a][a];

for (j=0; j<100; j++) {

if (visit[j]) {

if (dist[a][j]

start=dist[a][j];

temp=j;

}

}

}

a=temp;

visit[a]=0;

array[i]=temp+1;

min=min+start;

}

for (i=0; i<100; i++)

printf("%d: %d \n", i+1, array[i]);

printf("%.2f ", min);

}

00分享举报

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值