Young87

SmartCat's Blog

So happy to code my life!

游戏开发交流QQ群号60398951

当前位置:首页 >跨站数据测试

ZJGSU OJ 2282 字符串排序(函数 && 指针)

几乎和2475那题一样

题目描述
编写一个程序,在主函数中输入n个不等长的字符串。用另一个函数
sort()对它们排序,函数sort()原型为:void sort(char *p[6]);,要求用指针
数组处理,然后在主函数输出这n个已排好的字符串。

输入
输入包括多组数据,第一行为一个字母n,表示下面有n个不等长的字符串,然后是n行字符串。输入0时结束。
输出
输出排序后的字符串。

样例输入
5
a
c
s
e
h
0
样例输出
a
c
e
h
s

#include<stdio.h>        //2282
#include<string.h>
#include<stdlib.h>
int main(){
    int n;
    char *str[1000];
    void print(char *name[],int n);
    void sort(char *name[],int n);
    while(scanf("%d", &n) && n!=0){
        getchar();
        for (int i = 0; i < n; i++){
            str[i]=(char *)malloc(4);
            gets(str[i]);
        }
        sort (str,n);
        print(str,n);
        for (int i = 0; i < n; i++){
            free(str[i]);		//及时free掉比较好
        }
    }
}
void sort(char *name[],int n){
    int i,j,p;
    char tmp[1000];
    for(i=0; i<n-1; i++){
        p=i;
        for(j=i+1; j<n; j++)
            if (strcmp(name[p],name[j])>0) p=j;
        if (p!=i){
            strcpy(tmp,name[p]);strcpy(name[p],name[i]);strcpy(name[i],tmp);
        }
    }
}
void print(char *name[],int n){
    int i;
    for ( i = 0; i < n; i++){
        printf("%s\n",name[i]);
    }
}

除特别声明,本站所有文章均为原创,如需转载请以超级链接形式注明出处:SmartCat's Blog

上一篇: 美和易思课堂 MOOT去鼠标检测,快进,倍速,自动下一章

下一篇: ZJGSU OJ 2475 字符串排序(指针做法)

精华推荐