编字符串排列函数sort,实现从键盘输入5个字符串(每个字符串长度小于30),其ascii码从小到大排列输出,冒泡法。
#include<stdio.h>
#include<string.h>
#define M 5
#define N 20
void swap(char a[], char b[]) {
char st[N];
strcpy(st, a);
strcpy(a, b);
strcpy(b, st);
}
void scanf_lists(char list[][N], int len)
{
int i;
for (i = 0; i < len; ++i) {
scanf("%s", list[i]);
}
}
void printf_lists(char list[][N], int len)
{
int i;
for (i = 0; i < len; ++i) {
printf("%s\n", list[i]);
}
}
void sort_soap(char list[][N], int len)
{
int i, j;
for (i = 0;i <= len - 1;i++)
{
for (j = 0;j < len - 1 - i;j++)
{
if(strcmp(list[j],list[j+1])>0)
swap(list[j],list[j+1]);
}
}
}
void main(void)
{
char list[M][N];
int i, j, p;
scanf_lists(list, M);
sort_soap(list, M);
printf_lists(list, M);
}