6-4 字符串排序
分数 10
全屏浏览
切换布局
作者 张泳
单位 浙大城市学院
本题将5个字符串从小到大排序后输出(用指针数组实现)。
函数接口定义:
void fsort(char *color[ ], int n);
其中 color为指针数组首地址,n是字符串个数。
裁判测试程序样例:
#include <stdio.h>
#include <string.h>
void fsort(char *color[ ], int n);
int main(void )
{
int i;
char *pcolor[ ] = {"red", "blue", "yellow", "green", "black"};
void fsort(char *color[ ], int n);
fsort(pcolor, 5); /* 调用函数 */
for(i = 0; i < 5; i++)
printf("%s ", pcolor[i]);
printf("\n");
return 0;
}
/* 请在这里填写答案 */
输入样例:
输出样例:
black blue green red yellow
答案
#include <string.h>
void fsort(char **color, int n){
int k, j;
char *temp;
for (k = 0; k < n - 1; k++) {
for (j = 0; j < n - 1 - k; j++) {
if (strcmp(color[j], color[j + 1]) > 0) {
temp = color[j];
color[j] = color[j + 1];
color[j + 1] = temp;
}
}
}
}