

题目
解决代码及点评
/************************************************************************/
/*
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)拷贝代码与运行
程序运行结果