校园导航问题代码.doc
#include<stdio.h>#define NUM 10int shorted0(int aNUMNUM,int i,int j)int m,n,r;m=i;n=j;r=amn; printf("%d->%d:%dn",(m+1),(n+1),r);return r;int shorted1(int aNUMNUM,int i,int j)int m,n,w=0,t=0,r=0;int uNUM-23;int bNUM-2;int sign=0;m=i;n=j;while(w<NUM)if(w!=m&&w!=n) bt=amw+awn; ut0=m;ut1=w;ut2=n;t+;w+;r=b0; for(w=1;w<NUM-2;w+)if(r>bw)r=bw;sign=w;for(w=0;w<3;w+) if(w<2)printf("%d->",(usignw+1);elseprintf("%d:%dn",(usignw+1),r);return r;int shorted2(int aNUMNUM,int i,int j)int m,n,w=0,q=0,r=0,t=0;int u(NUM-2)*(NUM-3)4;int b(NUM-2)*(NUM-3);int sign=0;m=i;n=j;while(w<NUM) if(w!=m&&w!=n)q=0;while(q<NUM)if(q!=m&&q!=n&&q!=w) bt=amw+awq+aqn; ut0=m; ut1=w; ut2=q; ut3=n; t+;q+;w+;r=b0; for(w=1;w<(NUM-2)*(NUM-3);w+) if(r>bw)r=bw;sign=w;for(w=0;w<4;w+) if(w<3)printf("%d->",(usignw+1);elseprintf("%d:%dn",(usignw+1),r);return r;int shorted3(int aNUMNUM,int i,int j) int m,n,w=0,q=0,r=0,t=0,x=0;int u(NUM-2)*(NUM-3)*(NUM-4)5;int b(NUM-2)*(NUM-3)*(NUM-4);int sign=0;m=i;n=j;while(w<NUM)if(w!=m&&w!=n)q=0;while(q<NUM)if(q!=m&&q!=n&&q!=w)x=0;while(x<NUM)if(x!=m&&x!=n&&x!=w&&x!=q)bt=amw+awq+aqx+axn; ut0=m;ut1=w;ut2=q;ut3=x;ut4=n;t+; x+;q+; w+;r=b0; for(w=1;w<(NUM-2)*(NUM-3)*(NUM-4);w+)if(r>bw)r=bw;sign=w;for(w=0;w<5;w+) if(w<4)printf("%d->",(usignw+1);elseprintf("%d:%dn",(usignw+1),r);return r;int shorted4(int aNUMNUM,int i,int j) int m,n,w=0,q=0,r=0,t=0,x=0;int s=0;int u(NUM-2)*(NUM-3)*(NUM-4)*(NUM-5)6;int b(NUM-2)*(NUM-3)*(NUM-4)*(NUM-5);int sign=0;m=i;n=j;while(w<NUM)if(w!=m&&w!=n)q=0;while(q<NUM)if(q!=m&&q!=n&&q!=w)x=0;while(x<NUM)if(x!=m&&x!=n&&x!=w&&x!=q)s=0;while(s<NUM)if(s!=m&&s!=n&&s!=w&&s!=q&&s!=x)bt=amw+awq+aqx+axs+asn;ut0=m;ut1=w;ut2=q;ut3=x;ut4=s;ut5=n; t+;s+; x+;q+; w+;r=b0; for(w=1;w<(NUM-2)*(NUM-3)*(NUM-4)*(NUM-5);w+)if(r>bw)r=bw;sign=w;for(w=0;w<6;w+) if(w<5)printf("%d->",(usignw+1);elseprintf("%d:%dn",(usignw+1),r);return r;int shorted5(int aNUMNUM,int i,int j) int m,n,w=0,q=0,r=0,t=0,x=0;int s=0,d=0;int u(NUM-2)*(NUM-3)*(NUM-4)*(NUM-5)*(NUM-6)7;int b(NUM-2)*(NUM-3)*(NUM-4)*(NUM-5)*(NUM-6);int sign=0;m=i;n=j;while(w<NUM)if(w!=m&&w!=n)q=0;while(q<NUM)if(q!=m&&q!=n&&q!=w)x=0;while(x<NUM)if(x!=m&&x!=n&&x!=w&&x!=q) s=0;while(s<NUM)if(s!=m&&s!=n&&s!=w&&s!=q&&s!=x)d=0;while(d<NUM)if(d!=m&&d!=n&&d!=w&&d!=q&&d!=x&&d!=s) bt=amw+awq+aqx+axs+asd+adn; ut0=m; ut1=w; ut2=q; ut3=x; ut4=s;ut5=d; ut6=n; t+;d+;s+; x+;q+; w+;r=b0; for(w=1;w<(NUM-2)*(NUM-3)*(NUM-4)*(NUM-5)*(NUM-6);w+)if(r>bw)r=bw; sign=w; for(w=0;w<7;w+) if(w<6)printf("%d->",(usignw+1);elseprintf("%d:%dn",(usignw+1),r);return r;int shorted6(int aNUMNUM,int i,int j) int m,n,w=0,q=0,r=0,t=0,x=0;int s=0,d=0,f=0;int u(NUM-2)*(NUM-3)*(NUM-4)*(NUM-5)*(NUM-6)*(NUM-7)8;int b(NUM-2)*(NUM-3)*(NUM-4)*(NUM-5)*(NUM-6)*(NUM-7);int sign=0;m=i;n=j;while(w<NUM)if(w!=m&&w!=n)q=0;while(q<NUM)if(q!=m&&q!=n&&q!=w)x=0;while(x<NUM)if(x!=m&&x!=n&&x!=w&&x!=q)s=0;while(s<NUM)if(s!=m&&s!=n&&s!=w&&s!=q&&s!=x)d=0;while(d<NUM)if(d!=m&&d!=n&&d!=w&&d!=q&&d!=x&&d!=s)f=0;while(f<NUM)if(f!=m&&f!=n&&f!=w&&f!=q&&f!=x&&f!=s&&f!=d) bt=amw+awq+aqx+axs+asd+adf+afn; ut0=m; ut1=w; ut2=q; ut3=x; ut4=s; ut5=d;ut6=f; ut7=n; t+;f+;d+;s+; x+;q+; w+;r=b0; for(w=1;w<(NUM-2)*(NUM-3)*(NUM-4)*(NUM-5)*(NUM-6)*(NUM-7);w+)if(r>bw)r=bw;sign=w; for(w=0;w<8;w+) if(w<7)printf("%d->",(usignw+1);elseprintf("%d:%dn",(usignw+1),r);return r;int shorted7(int aNUMNUM,int i,int j) int m,n,w=0,q=0,r=0,t=0,x=0;int s=0,d=0,f=0,g=0,k=0,o=0;int b(NUM-2)*(NUM-3)*(NUM-4)*(NUM-5)*(NUM-6)*(NUM-7)*(NUM-8);m=i;n=j;while(w<NUM)if(w!=m&&w!=n)q=0;while(q<NUM)if(q!=m&&q!=n&&q!=w)x=0;while(x<NUM)if(x!=m&&x!=n&&x!=w&&x!=q)s=0;while(s<NUM)if(s!=m&&s!=n&&s!=w&&s!=q&&s!=x)d=0;while(d<NUM)if(d!=m&&d!=n&&d!=w&&d!=q&&d!=x&&d!=s)f=0;while(f<NUM)if(f!=m&&f!=n&&f!=w&&f!=q&&f!=x&&f!=s&&f!=d) g=0; while(g<NUM) if(g!=m&&g!=n&&g!=w&&g!=q&&g!=x) if(g!=s&&g!=d&&g!=f) bt=amw+awq+aqx+axs+asd+adf+afg+agn; t+; g+; f+;d+;s+; x+;q+; w+; r=b0; for(w=1;w<(NUM-2)*(NUM-3)*(NUM-4)*(NUM-5)*(NUM-6)*(NUM-7)*(NUM-8);w+) if(r>bw) r=bw; printf("The shorter path owned 9 points: %dn",r);return r;int shorted8(int aNUMNUM,int i,int j) int m,n,w=0,q=0,r=0,t=0,x=0;int s=0,d=0,f=0,g=0,k=0,o=0,h=0;int b(NUM-2)*(NUM-3)*(NUM-4)*(NUM-5)*(NUM-6)*(NUM-7)*(NUM-8);m=i;n=j;while(w<NUM)if(w!=m&&w!=n)q=0;while(q<NUM)if(q!=m&&q!=n&&q!=w)x=0;while(x<NUM)if(x!=m&&x!=n&&x!=w&&x!=q)s=0;while(s<NUM)if(s!=m&&s!=n&&s!=w&&s!=q&&s!=x)d=0;while(d<NUM)if(d!=m&&d!=n&&d!=w&&d!=q&&d!=x&&d!=s)f=0;while(f<NUM)if(f!=m&&f!=n&&f!=w&&f!=q&&f!=x&&f!=s&&f!=d) g=0; while(g<NUM) if(g!=m&&g!=n&&g!=w&&g!=q&&g!=x) if(g!=s&&g!=d&&g!=f) h=0; while(h<NUM) if(h!=m&&h!=n&&h!=w&&h!=q&&h!=x&&h!=s) if(h!=d&&h!=f&&h!=g) bt=amw+awq+aqx+axs+asd+adf+afg+agh+ahn; t+; h+; g+; f+;d+;s+; x+;q+; w+; r=b0; for(w=1;w<(NUM-2)*(NUM-3)*(NUM-4)*(NUM-5)*(NUM-6)*(NUM-7)*(NUM-8);w+) if(r>bw) r=bw; printf("The shorter path owned 10 points: %dn",r);return r;void mode()printf(" Welcome to The Henan University Of Technology! n");printf("-n");printf("* 地址一览表 *n");printf("=n");printf("1 > 4号综合教学楼n");printf("2 > 6 号 办 公 楼n");printf("3 > 7号电工实验楼n");printf("4 > 5号语音教学楼n");printf("5 > 老 餐 厅n");printf("6 > 起 点 超 市n");printf("7 > 露天 体 育 场n");printf("8 > 篮 球 场n");printf("9 > 风 味 餐 厅n");printf("10> 东 公 寓n");printf("=n");void mostshort(int aNUMNUM,int m,int n)int i,j,w;int small=0;int qNUM-1;for(i=0;i<(NUM-2);i+)qi=0;i=m;j=n;printf("-n");printf("输出各种数量地点之间的较短路径:n"); q0=shorted0(a,i,j);q1=shorted1(a,i,j);q2=shorted2(a,i,j); q3=shorted3(a,i,j);q4=shorted4(a,i,j);q5=shorted5(a,i,j);q6=shorted6(a,i,j);q7=shorted7(a,i,j);q8=shorted8(a,i,j);small=q0; for(w=1;w<NUM-1;w+)if(small>qw)small=qw; printf(" 比较得到最短路径为: %dn",small);printf("q7:%d",q7);void main()int i,j,w=1;int m,n;int aNUMNUM=0,4,5,6,6,77,9,4,5,6,4,0,5,3,5,66,77,4,5,9,5,5,0,7,54,2,44,33,4,6,6,3,7,0,7,98,4,44,55,14,6,5,54,7,0,44,7,45,55,16,77,66,2,98,44,0,45,64,21,31,9,77,44,4,7,45,0,4,7,44,4,4,33,44,45,64,4,0,45,56,5,5,4,55,55,21,7,45,0,54,6,9,6,14,16,31,44,56,54,0;while(w=1) mode();printf(" 各地点之间的距离表 n");printf("说明:1.行序数与排序数为A地与B地的地址代码;n"); printf(" 2.行与排交叉点的值为A,B两地之间的距离;n");printf("=n");for(i=0;i<NUM;i+)for(j=0;j<NUM;j+)printf("%5d",aij);printf("n");printf("请输入起始地点地址代码(1-10): ");scanf("%d",&m);printf("请输入终止地点地址代码(1-10): ");scanf("%d",&n);mostshort(a,(m-1),(n-1);printf("-n");printf("继续查询输入1,退出按任意键;n");printf("=n");printf("请您输入:");scanf("%d",&w);printf("*n");printf("!bye-bye!");