// 并不是按首字母排序,而是按字符串顺序排序。
// 字典上也是这样的
//
#include <stdio.h>
#include <stdlib.h>
#define N
7
#define LENGTH
81
void strswap(char * s1, char * s2, int maxlen);
int main(void) {
int i, j;
char sstr[N][LENGTH];
for (i = 0; i < N; ++i) {
scanf("%s", sstr[i]);
}
for (i = 0; i < N; ++i) {
for (j = i + 1; j < 7; ++j) {
if (strcmp(sstr[i], sstr[j]) > 0) {
strswap(sstr[i], sstr[j], LENGTH);
}
}
puts(sstr[i]);
}
return 0;
}
void strswap(char * s1, char * s2, int maxlen)
{
char *s;
s = (char*)malloc(maxlen);
if (s1 && s2 && s) {
strcpy(s,
s1);
strcpy(s1, s2);
strcpy(s2, s);
} else {
printf("Error: %s !\n", s?"Argument":"Memory allocation");
}
free(s);
}
[
本帖最后由 cosdos 于 2009-10-29 18:38 编辑 ]