解决方案 »

  1.   

    char c[256]={0},b[26]={0};//c[i]数组代表输入的第i个字符,b[j]数组代表第i个字母的个数
    b[26]应该为int型  但改过之后也不行,输出不了
      

  2.   

    经测试可以输出,
    你输入的字符串是不是没有小写字母?你在continue的地方加个printf输出试试
      

  3.   

    帮你代码优化一下#import <Foundation/Foundation.h>
    int main()
    {
        char c[256]={0},b[26]={0};
            for (int i=0;i!='.'; i++) {  //逐个输入字母,以‘.’结束
            scanf("%c",&c[i]);
    //循环参照
    //        if(c[i]==97)
    //            b[0]++;
    //        else
    //            if(c[i]==98)
    //                b[1]++;
    //            else
    //                if(c[i]==99)
    //                    b[2]++;
    //    
    /*    
            for (int j=0; j<26; j++) { //每个字母小于26
                if (c[i]==97+j){       //如果c[i]与26个字母中的第j个相等
                    b[j]++;            //则该字母个数+1
                    break;             //相等之后立马跳出循环
                }
            }*/
          int j= c[i]-97;
          if(j>=0 && j<26)
                b[j]++;
        }
        for (int i=0; i<26; i++) {
            if (b[i]==0) {
               printf("%c:0",'a'+i);
                continue;
            }         printf("%c:%d",'a'+i,b[i]);
        }
        printf("\n");
        return 0;
    }