有 N个国家名,要求按字母先后顺序排列(用起泡排序法)后输出。

#define _CRT_SECURE_NO_WARNINGS
#include"stdlib.h"
#include"stdio.h"
#include"string.h"
int maopao(char p[][100])
{
	char *buf;

	buf = (char *)malloc(sizeof(char)* 100);
	printf("%s", p[1]);
	int i = 0,j=0;
	for (i = 1; i < 6; i++)
	{
		for (j = i + 1; j< 5; j++)
		{

			if (strcmp(p[i], p[j])>0)
			{
				strcpy(buf, p[i]);      //数组需要用函数strcpy   指针不通过,因为只能不能copy字符串,
				strcpy( p[i],p[j]);
				strcpy(p[j],buf);
			}
		}
	}

}
int  myexport(char mystr[][100])
{
	int i = 0;
	for (i = 0; i < 6; i++)
	{
		printf("%s\n",mystr[i]);
	}
}
int main()
{
	char str[6][100] = { 
		"China",  
		"US",
		"Japan",
		"Korea",
		"XOXOXO",
		"after" };  //如果输出函数的话,就不能定义指针类型的数组;因为常量不好修改。

	printf("排序前\n");
	myexport(str);
	maopao(str);
	printf("排序后\n");
	myexport(str);
	system("pause");
}

你可能感兴趣的:(C/C++)