A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 huzhiqiang 于 2016-5-27 21:27 编辑

//1.一个字符串"accbsadnnssdhbascksfnascbas"中,遍历其中a的数量,b的数量,c的数量,d的数量
//2.在1的基础上按照由多到少的顺序输出字符串中的a,b,c,d

据说可以用结构体做,而且更简单,可惜我不会,,,如果有会的分享下哦

#include <stdio.h>

int main(int argc, const char * argv[]) {
   
    char ch[]="accbsadnnssdhbascksfnascbas";
    int len = sizeof(ch) - 1;
   
    char cha[len],chb[len],chc[len],chd[len];//声明4个字符数组分别用于存放找到的字符a,b,c,d
   
    int la  = 0,lb = 0, lc = 0, ld = 0;//定义4个变量,用于计数
    for(int i = 0; i < len; i++ )//遍历字符数组ch,将找到的字符a,b,c,d分别存放到数组cha,chb,chc,chd中
    {
        if(ch == 'a')
        {
            cha[la] = 'a';
            la++;//计算有多少字符a
        }
        else if(ch == 'b')
        {
            chb[lb] = 'b';
            lb++;//计算有多少字符b
        }
        else if(ch == 'c')
        {
            chc[lc] = 'c';
            lc++;//计算有多少字符c
        }
        
        else if(ch == 'd')
        {
            chd[ld] = 'd';
            ld++;//计算有多少字符d
        }
        else
            continue;
    }
   
   
    //在1的基础上按照由多到少的顺序输出字符串中的a,b,c,d
    for(int i = 0; i < 4; i++)
    {
    if(la > lb && la > lc && la >ld)
        //如果la大于lb,lc,ld,就输出字符串cha
    {
        printf("a 有%d个 %s\n",la,cha);
        la = -1;
    }
    else if(lb > la && lb > lc && lb >ld)
    {
        printf(b 有%d个 %s\n",lb,chb);
        lb = -1;
    }
    else if(lc > lb && lc > la && lc >ld)
    {
        printf("a 有%d个 %s\n",lcchc);
        lc = -1;
    }
        
    else if(ld > lb && ld > lc && ld >la)
    {
        printf("a 有%d个 %s\n",ld,chd);
        ld = -1 ;
    }
    }
   

1 个回复

倒序浏览
可以用循环嵌套,也不用这么复杂
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马