问题描述;输入三个字符串 Steinbeck, Hemingway, Fitzgerald,输出Fitzgerald, Hemingway,Steinbeck
算法思路:设计二维字符数组存储字符串,利用指针数组进行对字符数组的引用,利用冒泡排序的方法对字符串进行排序,利用printf进行对数组的输出。
#include <iostream> //包含了system("pause")
using namespace std;
#define M 3
#define N 20
void fun(char(*p)[N]) //定义指针数组
{
int i, j, k;
char t[N];
for (i = 0; i < M - 1; i++) //循环次数 //冒泡法
for (j = 0; j < M - 1 - i; j++) //比较次数
if (strcmp(p[j], p[j + 1]))
swap(p[j], p[j + 1]);
}
int main()
{
char ss[M][N] = { "Steinbeck","Hemingway","Fitzgerald" };
int i;
printf("\nThe original strings are :\n");
for (i = 0; i < M; i++) printf("%s\n", ss[i]);
printf("\n");
fun(ss);
printf("\nThe result :\n");
for (i = 0; i < M; i++) printf("%s\n", ss[i]);
system("pause");
}