查找里程——《C语言程序设计进阶》

查找里程


给你这样一张里程表,如何写一个程序,输入两地的地名,能输出期间的里程?


#include <stdio.h>
#include <string.h>

void main(){
	//位置和里程信息输入 
	char *address[]={"Atlanta","Boston","Chicago","Denver","Detroit","Houston",
	"Los Angeles","Miami","New York","Philadelphia","San Francisco","Seattle"};
	int distance[12][12]={
        {   0, 1108,  708, 1430,  732,  791, 2191,  663,  854,  748, 2483, 2625,},
        {1108,    0,  994, 1998,  799, 1830, 3017, 1520,  222,  315, 3128, 3016,},
        { 708,  994,    0, 1021,  279, 1091, 2048, 1397,  809,  785, 2173, 2052,},
        {1430, 1998, 1021,    0, 1283, 1034, 1031, 2107, 1794, 1739, 1255, 1341,},
        { 732,  799,  279, 1283,    0, 1276, 2288, 1385,  649,  609, 2399, 2327,},
        { 791, 1830, 1091, 1034, 1276,    0, 1541, 1190, 1610, 1511, 1911, 2369,},
        {2191, 3017, 2048, 1031, 2288, 1541,    0, 2716, 2794, 2703,  387, 1134,},
        { 663, 1520, 1397, 2107, 1385, 1190, 2716,    0, 1334, 1230, 3093, 3303,},
        { 854,  222,  809, 1794,  649, 1610, 2794, 1334,    0,  101, 2930, 2841,},
        { 748,  315,  785, 1739,  609, 1511, 2703, 1230,  101,    0, 2902, 2816,},
        {2483, 3128, 2173, 1255, 2399, 1911,  387, 3093, 2930, 2902,    0,  810,},
        {2625, 3016, 2052, 1341, 2327, 2369, 1134, 3303, 2841, 2816,  810,    0,},
						};
	//UI 
	char addr1[20],addr2[20]; 	//定义两个输入的地点 
	printf("请输入第一个地点:"); 
	gets(addr1);
//	printf("%s\n",addr1);
	printf("请输入第二个地点:");
	gets(addr2); 
//	printf("%s\n",addr2);
	
	int i,j,k;
	for(i=0;i<12;i++)
    {
        if(strcmp(addr1,address[i])==0)
            j=i;
        if(strcmp(addr2,address[i])==0)
            k=i;    
    }
    printf("%d\n",j);
    printf("%d\n",k);
	printf("两地之间距离为:%d km\n",distance[j][k]);
	
}

猜你喜欢

转载自blog.csdn.net/zhanshen112/article/details/80765279