黑马程序员-C语言的SWITCH 和case问题

------- IOS培训IOS培训、期待与您交流! ----------
</pre><pre name="code" class="cpp">#include<stdio.h>
#include<string.h>
int main()
{
    char a[100];
    printf("请输入一串字符:");
    scanf("%s",a);
    printf("%s",a);
    int l=strlen(a);
    int j,k,n,m;
    for (int i; i<l; i++)
    {    printf("%d",j);
        switch (a[i]) {
            case 'a':
                j++;
               
                break;
            case 'b':
                k++;
                break;
            case 'c':
                m++;
                break;
            case 'd':
                n++;
                break;
                
        }
    }
    
    printf("输入的字符串里含有的a的个数%d, b的个数:%d,c的个数:%d,d的个数:%d",j,k,m,n );
}



 

在做基础测试题,犯了一个低级错误,就是case 的内容不能使变量,要是常量,而且在排序的过程中也没有把ABCD字符跟着个数改变到时输出的字母和个数不一致,后来把程序改成以下所示,成功实现功能le ~

而且这个开始i,j,k,l,m 变量没有赋初值,导致个数出现一串数字,后来赋值为0之后成功实现~

#include <stdio.h>
#include<string.h>
int main()
{
    char ch[100];
    int i,n,j=0,k=0,l=0,m=0;
    printf("请输入字符串:\n");
    gets(ch);
    n=strlen(ch);
    for(i=0;i<n;i++)
    {
        switch (ch[i]) {
            case 65:
                j++;
                break;
            case 66:
                k++;
                break;
            case 67:
                l++;
                break;
            case 68:
                m++;
                break;
        }
        
    }//计算A,B,C,D的个数
    
    int temp,z,q;
    char tempp=' ';
    int count[4]={j,k,l,m};
    char a[4]={'A','B','C','D'};
    for (z=3; z>=0; z--) {
        for(q=0;q<=z;q++)
        {
            if(count[q+1]<count[q])
            {
                temp=count[q];
                count[q]=count[q+1];
                count[q+1]=temp;
                
                tempp=a[q];
                a[q]=a[q+1];
                a[q+1]=tempp;
            }
        }
    }//排序
    
    for (int t=3; t>=0; t--) {
        printf("出现 %c 的次数为:%d\n",a[t],count[t]);
    }//输出
    
    return 0;
    
}


---------------------- IOS开发IOS、期待与您交流! ----------------------详细请查看: www.itheima.com
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值