字符串排序

本题将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; } /* 请在这里填写答案 */

void fsort(char *color[ ], int n) { 
    int i, j;
    char *temp;
    for (i = 0; i < n-1; i++) { 
        for (j = 0; j < n-i-1; j++) {
            if (strcmp(color[j], color[j+1]) > 0) { 
                temp = color[j];
                color[j] = color[j+1];
                color[j+1] = temp;
            }
        } 
    } 
}

这是一个用于对颜色字符串进行冒泡排序的函数。函数中传入了两个参数,一个是字符串数组color,另一个是数组的长度n。

该函数采用了双重循环,外层循环控制排序的轮数,内层循环遍历当前轮数下需要比较的相邻元素。在每次内层循环中,如果前一个字符串比后一个字符串大(按照字典序比较),则交换它们的位置,使得相邻的字符串按照字典序逐渐变小,最终达到排序的目的。

需要注意,该函数中使用了指针变量temp来暂时保存需要交换的字符串,以便完成交换操作。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值