题解 | #图片整理#

图片整理

http://www.nowcoder.com/practice/2de4127fda5e46858aa85d254af43941

思路:
读取字符串后,按照数字,大写字母,小写字母分类保存在不同的数组。数字数字内排序,大写字母内排序,小写字母内排序。先后输出数字字符串,大写字母字符串,小写字母字符串。
程序:
#include<stdio.h>
#include<string.h>
int main(){
    char str[1001]={'\0'};
    char shuzi[1001]={'\0'},daxie[1001]={'\0'},xiaoxie[1001]={'\0'};
    int i=0,j=0,k=0,end=1000;
    int num_shuzi=0,num_daxie=0,num_xiaoxie=0;
    scanf("%s",str);
//按数字,大写字母,小写字母分类保存
    for(int m=0;m<strlen(str);m++){
        if(str[m]>='0'&&str[m]<='9'){
            shuzi[i]=str[m];
            i=i+1;
        }
        else if(str[m]>='A'&&str[m]<='Z'){
           daxie[j]=str[m];
            j=j+1; 
        }
         else if(str[m]>='a'&&str[m]<='z'){
           xiaoxie[k]=str[m];
            k=k+1; 
        }
    }
    num_shuzi=i;
    num_daxie=j;
    num_xiaoxie=k;
    //数字排序
    char bigger1='\0';
    for(i=0;i<num_shuzi-1;i++){
        for(j=i+1;j<num_shuzi;j++){
            if(shuzi[j]<shuzi[i]){
              bigger1=shuzi[i];
                shuzi[i]=shuzi[j];
                shuzi[j]=bigger1;
            }
        }
    } 
    //大写字母排序
    char bigger2='\0';
    for(i=0;i<num_daxie-1;i++){
        for(j=i+1;j<num_daxie;j++){
            if(daxie[j]<daxie[i]){
              bigger2=daxie[i];
                daxie[i]=daxie[j];
                daxie[j]=bigger2;
            }
        }
    } 
     //小写字母排序
    char bigger3='\0';
    for(i=0;i<num_xiaoxie-1;i++){
        for(j=i+1;j<num_xiaoxie;j++){
            if(xiaoxie[j]<xiaoxie[i]){
              bigger3=xiaoxie[i];
                xiaoxie[i]=xiaoxie[j];
                xiaoxie[j]=bigger3;
            }
        }
    } 
    //输出
    printf("%s",&shuzi[0]);
    printf("%s",&daxie[0]);
    printf("%s",&xiaoxie[0]);
}

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-07 18:05
哈哈哈哈哈感觉朋友找工作的已经疯掉了,直接上图
码农索隆:真老板娘:“我嘞个去,这不我当年的套路吗
点赞 评论 收藏
分享
05-22 12:44
已编辑
门头沟学院 golang
点赞 评论 收藏
分享
05-26 10:24
门头沟学院 Java
qq乃乃好喝到咩噗茶:其实是对的,线上面试容易被人当野怪刷了
找工作时遇到的神仙HR
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务