- [somniumchase] 大佬NB,不知道为什么,我在dosbox里面运行,那个笑脸显示在左上角,而且还卡住了 01/01 11:40
- [runxsystem] smaile.asm:2: error: parser: instruction expected 07/18 10:27
- [游客] 你说你妈呢 06/04 15:11
- [zkkpkk] 注意日期,很早以前的代码了,谁都一样,谁在第一个项目就写得漂亮的 05/11 11:56
- [qqqun238564439] 厉害! 04/10 10:54
- [游客] 二〇一五年六月七日 16:23:17 06/07 16:23
- [游客] 说句实话,代码写的非常垃圾。你缺乏基本的编程素养,不积跬步无以至千里,建议先把基础打扎实。 03/25 13:48
- [游客] www.aibiancheng.cn 爱编程 02/20 21:21
- [dreamsever] 大神,请问汇编语言可以编写或者调用窗口吗 12/19 19:19
- [dgkepu] 佩服佩服!!!谢谢分享! 12/06 06:57
- [qqqun238564439] 非常好 04/10 10:50
- [dreamsever] 求帮助,大神,请问汇编语言可以编写或者调用窗口吗,怎么实现,给点指导性的提示吧。 12/19 19:21
- [xiaofan086] 你好,本人初学汇编,请问汇编需要什么编译环境,即相应的软件等等,谢谢 01/03 15:02
- [hl458461178] 求帮助 如何让一个程序循环1000次 循环到255次后就与自己的思路叉开了 10/11 12:15
- [lizhengyong1217] 汇编学几回了,都是学着学着放弃了。由于立志做一名优秀的嵌入式编程人员,为了移植系统的需要,不得不,再 04/04 08:57
[2010-08-13 09:50] 10年程序员下午题
/*输入两个城市名,然后在cityTable中查找与城市名对应的下标,*/
/*最后用该下标在kmTable中找到两城市之间的距离*/
/*函数说明:(1)FindCityInSortedArray的功能是用二分查找法在*/
/*全局数组cityTable中查找城市名所对应的下标值。*/
/*(2)GetCity的功能是读入城市名,调用FindCityInSortedArray来*/
/*获取城市所对应的下标值。如果该城市名不存在,则提示重新输入*/
#include"stdio.h"
#define NCities 8 /*城市个数*/
#define TRUE 1
static char * cityTable[NCities]={ /*城市名按字典序升序排列*/
"Beijing",
"Chengdu",
"Chongqing",
"Dalian",
"Guiyang",
"Lanzhou",
"Nanjing",
"Sanya",
};
static int kmTable[NCities][NCities]={ /*各城市间对应的距离*/
{0,1697,2695,937,1784,1356,926,2543},
{1697,0,313,1840,533,940,1409,1505},
{2695,313,0,1734,343,1117,1206,1306},
{937,1840,1734,0,1995,1594,818,2602},
{1784,533,343,1995,0,1113,1346,976},
{1356,940,1117,1594,1113,0,1654,2075},
{926,1409,1206,818,1346,1654,0,1806},
{2543,1505,1306,2602,976,2075,1806,0}
};
int main(){
int city1,city2;
city1=GetCity("Input first City:");
city2=GetCity("Input second City:");
printf("%s and %s are length:%d km.\n",
cityTable[city1],cityTable[city2],
kmTable[city1][city2]);
return 0;
}
static int GetCity(char * prompt){
char * cityName;
int index;
cityName=(char *)malloc(20*sizeof(char));
while(TRUE){
printf("%s",prompt);
gets(cityName);
index=FindCityInSortedArray(cityName);
if(index>-1) break;
printf("Not exist cityName,please input again!\n");
}
free(cityName);
return index;
}
static int FindCityInSortedArray(char * key){
int lh,rh,mid,cmp;
lh=0;
rh=NCities-1;
while(lh<=rh){
mid=(lh+rh)/2;
cmp=strcmp(key,cityTable[mid]);
if(cmp==0) return mid;
if(cmp<0) {rh=mid-1;}
else {lh=mid+1;}
}
return (-1);
}
/*最后用该下标在kmTable中找到两城市之间的距离*/
/*函数说明:(1)FindCityInSortedArray的功能是用二分查找法在*/
/*全局数组cityTable中查找城市名所对应的下标值。*/
/*(2)GetCity的功能是读入城市名,调用FindCityInSortedArray来*/
/*获取城市所对应的下标值。如果该城市名不存在,则提示重新输入*/
#include"stdio.h"
#define NCities 8 /*城市个数*/
#define TRUE 1
static char * cityTable[NCities]={ /*城市名按字典序升序排列*/
"Beijing",
"Chengdu",
"Chongqing",
"Dalian",
"Guiyang",
"Lanzhou",
"Nanjing",
"Sanya",
};
static int kmTable[NCities][NCities]={ /*各城市间对应的距离*/
{0,1697,2695,937,1784,1356,926,2543},
{1697,0,313,1840,533,940,1409,1505},
{2695,313,0,1734,343,1117,1206,1306},
{937,1840,1734,0,1995,1594,818,2602},
{1784,533,343,1995,0,1113,1346,976},
{1356,940,1117,1594,1113,0,1654,2075},
{926,1409,1206,818,1346,1654,0,1806},
{2543,1505,1306,2602,976,2075,1806,0}
};
int main(){
int city1,city2;
city1=GetCity("Input first City:");
city2=GetCity("Input second City:");
printf("%s and %s are length:%d km.\n",
cityTable[city1],cityTable[city2],
kmTable[city1][city2]);
return 0;
}
static int GetCity(char * prompt){
char * cityName;
int index;
cityName=(char *)malloc(20*sizeof(char));
while(TRUE){
printf("%s",prompt);
gets(cityName);
index=FindCityInSortedArray(cityName);
if(index>-1) break;
printf("Not exist cityName,please input again!\n");
}
free(cityName);
return index;
}
static int FindCityInSortedArray(char * key){
int lh,rh,mid,cmp;
lh=0;
rh=NCities-1;
while(lh<=rh){
mid=(lh+rh)/2;
cmp=strcmp(key,cityTable[mid]);
if(cmp==0) return mid;
if(cmp<0) {rh=mid-1;}
else {lh=mid+1;}
}
return (-1);
}
评论次数(0) |
浏览次数(1190) |
类型(我的程序) |
收藏此文 |