
题目
解决代码及点评
/************************************************************************/ /* 15. 有 N个国家名,要求按字母先后顺序排列(用起泡排序法)后输出 */ /************************************************************************/ #include <stdio.h> #include <stdlib.h> #include <math.h> #include <string.h> void swap15(char *c1,char *c2) { char tempc[20]; strcpy_s(tempc,c1); strcpy_s(c1,sizeof(tempc), c2); strcpy_s(c2,sizeof(tempc), tempc); } void main() { const int N=10; char Cun [N][20]; // 两层数组表示国名 for (int i=0;i<N;i++) { gets_s(Cun[i]); // 从键盘获取国名 } for (int i=0;i<N-1;i++) // 冒泡排序法 { for (int j=1;j<N-i;j++) { if (strcmp( Cun[j],Cun[j-1])<0) // 使用strcmp来比较字符串 { swap15(Cun[j],Cun[j-1]); // 条件成立则交换 } } } for (int i=0;i<N;i++) // 打印新的国名顺序 { puts(Cun[i]); } system("pause"); }
代码编译以及运行
由于资源上传太多,资源频道经常被锁定无法上传资源,同学们可以打开VS2013自己创建工程,步骤如下:
1)新建工程
2)选择工程
3)创建完工程如下图:
4)增加文件,右键点击项目
5)在弹出菜单里做以下选择
6)添加文件
7)拷贝代码与运行
程序运行结果