#include<stdio.h>
#include<stdlib.h>
void findbestpath(int s[] , int n ,int &s1 ,int &s2);
int main(void)
{
int a[3][5] = {-50 , -47 , 36 , -30 , -23 ,
17 , -19 , -34 , -43 , -8 ,
-42 , -3 , -43 , 34 , -45 } ;
int s[5] = {-100 , -100 , -100 , -100 , -100};
for(int j = 0 ; j < 5 ; j++)
{
for(int i = 0 ; i < 3 ;i++)
{
if(s[j] < a[i][j])
{
s[j] = a[i][j];
}
}
}
int s1 = 0 , s2 = 0;
findbestpath( s , 5 , s1 ,s2 );
printf("the best path is :");
for(int i = s1 ; i <= s2 ; i++)
{
printf("%d\t",s[i]);
}
printf("\n");
return 0;
}
void findbestpath(int s[] , int n , int &s1 ,int &s2 )
{
int value = 0 , sum = 0 ;
for(int i = 0 ; i < n ; i++)
{
sum = sum + s[i];
if(sum > value)
{
value = sum ;
s2 = i;
}
if(sum < 0)
{
sum = 0 ;
}
}
int temp = value ;
s1 = s2;
while(temp)
{
temp = temp - s[s1];
s1--;
}
s1++;
}最佳浏览路线问题 算法设计
最新推荐文章于 2025-08-12 09:03:32 发布
本文详细阐述了一种用于寻找二维数组中最优路径的算法,通过遍历并比较元素值,最终确定最优路径并输出。
2262

被折叠的 条评论
为什么被折叠?



