当前位置:编程学习 > C/C++ >>

九度教程第76题

C语言源码:
[cpp]  
#include<stdio.h>  
#include<limits.h>  
#include<string.h>  
#define maxsize 110  
int s[maxsize][maxsize];  
int main()  
{  
    int n,m,i,j,k,time;  
    scanf("%d %d",&n,&m);  
    while(n!=0||m!=0)  
    {  
        for(i=0;i<n;i++)  
            for(j=0;j<n;j++)  
                s[i][j]=INT_MAX;  
        for(k=0;k<m;k++)  
        {  
            scanf("%d %d %d",&i,&j,&time);  
            s[i-1][j-1]=time;  
            s[j-1][i-1]=time;  
        }  
        for(k=0;k<n;k++)  
        {  
            for(i=0;i<n;i++)  
            {  
                for(j=0;j<n;j++)  
                {  
                    if(s[i][k]==INT_MAX||s[k][j]==INT_MAX)  
                        continue;  
                    else  
                        if(s[i][k]+s[k][j]<s[i][j])  
                            s[i][j]=s[i][k]+s[k][j];  
                }  
            }  
        }  
        printf("%d\n",s[0][n-1]);  
        scanf("%d %d",&n,&m);  
    }  
}  
 
补充:软件开发 , C++ ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,