文章

39

粉丝

45

获赞

0

访问

7.2k

头像
字符串对齐 题解:qsort
P2006 同济大学机试题
发布于2024年3月14日 17:38
阅读数 143

#include <stdio.h>
#include <stdlib.h>
typedef struct node{
    char s[10000];
    int forlen;
}node;

int cmp(const void*a,const void*b){
    struct node a1=*(struct node*)a;
    struct node b1=*(struct node*)b;
    return a1.forlen-b1.forlen;
}

int main()
{
    int n;
    scanf("%d",&n);
    struct node str[105];
    for(int i=0;i<n;i++){
        scanf("%s\n",&str[i].s);
        str[i].forlen=0;
    }
    char x;
    scanf("%c",&x);
    //
    for(int i=0;i<n;i++){
        int count=0;
        for(int j=0;j<strlen(str[i].s);j++){
            if(str[i].s[j]!=x)count++;
            else{
                str[i].forlen=count;
                break;
            }
        }

    }
    qsort(str,n,sizeof(struct node),cmp);
    int max=str[n-1].forlen;
    for(int i=0;i<n;i++){

        for(int j=1;j<=max-str[i].forlen;j++)printf("_");
        printf("%s\n",str[i].s);


    }


    return 0;
}

...
登录查看完整内容


登录后发布评论

暂无评论,来抢沙发