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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始


#include<stdio.h>

void PaiXu(int,int,int,int);

int main()
{
    int i,a = 0,b = 0,c = 0,d = 0;
    char f[100];
    printf("请输入字符串(以空格隔开):\n");
    scanf("%s",f);
   
    for(i = 0;f != '\0';i++)
    {
        if(f == 'A')
            a++;
        else if(f == 'B')
            b++;
        else if(f == 'C')
            c++;
        else if(f == 'D')
            d++;
    }
   
    printf("%d%d%d%d\n",a,b,c,d);
    PaiXu(a,b,c,d);
    return 0;
}

void PaiXu(int a,int b,int c,int d)
{
    int i,j,max,x[4] = {a,b,c,d};
   
    for(i = 0;i < 3;i++)
    {
        for(j = i + 1;j < 4;j++)
        {
            if(x < x[j])
            {
                max = x;
                x = x[j];
                x[j] = max;
            }
        }
    }
   
    for(i = 0;i < 4;i++)
    {
        if(x == a)
            printf("%c",'A');
        else if(x == b)
            printf("%c",'B');
        else if(x == c)
            printf("%c",'C');
        else
            printf("%c",'D');
        
        printf(":%d次\n",x);
    }
}

7 个回复

倒序浏览
虽然看不懂,还是谢谢分享
回复 使用道具 举报
你确定你这个代码可以实现么。。。scanf()输入空格不就断掉了么。。。
回复 使用道具 举报
  1. // while循环录入字母
  2.     int c = getchar();
  3.     while (c != '\n')
  4.     {
  5.         // 字母判别计数
  6.         switch (c)
  7.         {
  8.             case 'A':
  9.                 count[0]++;
  10.                 break;
  11.             case 'B':
  12.                 count[1]++;
  13.                 break;
  14.             case 'C':
  15.                 count[2]++;
  16.                 break;
  17.             case 'D':
  18.                 count[3]++;
  19.                 break;
  20.             default:
  21.                 break;
  22.         }
  23.         c = getchar();
  24.     }
复制代码
回复 使用道具 举报
这个刚好是我想问的啊 ,实在感谢
回复 使用道具 举报
字符串不是char *str么?char c[]不是字符数组么?不知道是不是我的理解有问题
回复 使用道具 举报
Macc 中级黑马 2015-1-28 21:08:15
7#
这代码。。。
回复 使用道具 举报
真的看不懂的说
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马