编写程序,将所给的5个字符串进行排序(使用指针数组完成排序)(使用指针的指针完成排序)

/*使用指针数组完成排序*/
#include <stdio.h>
#include <string.h>
void sort(char *a[],int size);
int main(){
	char a[5][20],*b[5];
	int i;
	for(i=0;i<5;i++){
		scanf("%s",&a[i]);
		b[i]=a[i];
	} 
	sort(b,5);
	for(i=0;i<5;i++){
		printf("%s\t",b[i]);
	}
	return 0;
}
void sort(char *a[],int size){
	int i,j;
	char *temp;
	for(i=0;i<4;i++){
		for(j=i;j<5;j++){
			if(strcmp(a[i],a[j])>0){
				temp=a[i];
				a[i]=a[j];
				a[j]=temp;
			}
		}
	}
}
//使用指针的指针完成排序
#include <stdio.h>
#include <string.h>
#define LINEMAX 20 
/*定义字符串的最大长度*/
void sort(char **p);          
int main()
{
    int i;
    char **p,*pstr[5],str[5][LINEMAX];
    for (i=0;i<5;i++)
        pstr[i]=str[i];  
	    /*将第i个字符串的首地址赋予指针数组 pstr 的第i个元素*/
	printf("input 5 strings:\n");
    for (i=0;i<5;i++)
        scanf("%s",pstr[i]);
    p=pstr;
    sort(p);
    printf("strings sorted:\n");
    for (i=0;i<5;i++)
    printf("%s\n",pstr[i]);
}
void sort(char **p)            /*冒泡法对5个字符串排序函数*/
{
    int i,j;
    char *temp;
    for (i=0;i<5;i++){
        for (j=i+1;j<5;j++){
    	    /*比较后交换字符串地址*/
	        if (strcmp(*(p+i),*(p+j))>0)      	
           {
	            temp=*(p+i);
                *(p+i)=*(p+j);
                *(p+j)=temp;
           }
        }
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值