我的C语言之旅——1

    技术2024-11-10  23

     

     

    问题:输入一串字符

          怎么能统计出大小写字符的个数

     

    要求:1.按照统计小写字母出现的次数来扩展

          2.可以另写函数fun2();

          3.也可以集成到fun1();

    我的疑惑:我出错在什么地方?

              我的思路是不是错了?

              有没有更好的办法?最好达到3的要求

    我使用的IDE:cfree5.0

      网上有免费版的 下一个

    我的基础:中专

              C语言1基础 (0--100);

     

     

    母版程序:统计小写字母出现的次数.c

    #include <conio.h>

    #include <stdio.h>

    #include <stdlib.h>

     

    void fun(char *tt,int pp[]){

       int i;

       for(i=0;i<26;i++)

       pp[i]=0;

      for(; *tt!='/0';tt++)

      if(*tt>='a' && *tt<='z')

     //2.if(*tt>'a' && *tt<='z')1.//怀疑是这里的问题注释掉 

            pp[*tt - 'a'] ++;

     

     

    }

    void main()

    {

    char aa[1000];

    int bb[26],k;

    system("CLS");

    printf("输入一串小写字符: ");

    scanf("%s",&aa);

    fun(aa,bb);

    for(k=0;k<26;k++)

           printf("%d",bb[k]);

        printf("/n");

    }

    // 1.字符串都保存在数组里面 

    //1.问大牛们,在这个设计的基础上,为什么在输入aaa的时候达不到我的要求 

    //2.又试了几个'a'发现'a'没被统计 

    //3.由于原来的母板有错了 ,影响到后来的大小写字符都统计的根本性错误 

     

     

     

    下面的是我自己写的 未完待续,因为还没有达到自己想要的结果

    //程序要追求完美

    自己的扩展:统计大小写字母出现的次数.c

     

    //开始的时候是因为第5行的*tt写成了**tt结果出错了 

    #include <conio.h>

     

    #include <stdio.h>

    #include <stdlib.h>

    #include <string.h> 

    void fun1(char *tt,int pp[]){/*函数定义出错了 多了一些参数 所以出错2.3 就是后果呵呵 

                                  */

     

                //2.3 早先定义的函数void fun1(char *tt,int pp[],int cc[]){

       int i;

     

       for(i=0;i<26;i++)

         {

    pp[i]=0;

         }

     

        for(; *tt!='/0';tt++){//4之后又少了个“{” 

     

     

         if(*tt>='a' && *tt<='z')   //{ if(*tt>'a' && *tt<='z')//4.设计上的错误要修改 

            pp[*tt - 'a'] ++;

    }

    }

     

    void fun2(char *tt,int cc[]){

    int x;

    for (x=0;x<26;x++)

           {

       cc[x]=0;

      }

      for(; *tt!='/0';tt++){

     

                       //结果就出现这里错误了 

         if(*tt>='A' && *tt<='Z')   //{if(*tt>'A' && *tt<='Z')//4.设计上的错误要修改 

         cc[*tt - 'A'] ++;

             }

          /*4.带来的危害是我要修改 if(*tt>'A' && *tt<='Z')和 if(*tt>'a' && *tt<='z')

           */ 

    }

    int main()

    {

    char aa[1000],c[1000];

    int x,bb[26],k,cc[26];

    system("CLS");

    printf("输入一串字符: ");

    scanf("%s",aa);

    //3.strcpy(c,aa);照样出现2的错误 郁闷啊什么意思啊? 

    //strcpy(c,bb);//按照2的思路进行修改显示错误 39: error: too few arguments to function `fun1'

    //2.后来看到strcpy(c,bb);有错误应该改成试下3.strcpy(c,aa);试下3. 

    fun1(aa,bb);

    /* 

          *1.原来的做法:bb=c;//感觉是这里出错了 不应该这么赋值 

     *2.是不是应该用strcpy()进行复制

    */

        fun2(c,cc);

    for(k=0;k<26;k++)

           {

       printf("%d",bb[k]);

    }

     

           //这里的k和x能不能用同一个?有没有什么好处啊? 

        for(x=0;x<26;x++)

           {

       printf("%d",cc[k]);

           }

        //printf("/n");

        //return 0;

     

     

    /* 3的错误改正除了之后 还是出错 达不到我要的结果

       怎么修改? 

       4.母板小写字符统计的错误导致出现设计的错误(专业术语叫什么?) 

       你所看到的都是我已经修改的到现在为止的错误现在的版本到4了 

       这时编译器又喊:“1.[Error]c:22: error: syntax error before '}' token” 

         2.c:68: error: syntax error at end of input(注释掉看看(68错误没了67又不行了))

    怎么这么多问题啊 呼呼 

    至今为止 还剩下一个错误2了 呼呼 

     

    */

     

     

    未完 ....小谢的编程之旅刚刚开始 

    欢迎大家评点以及 嘻嘻 帮助我解决下难题

    因为是刚刚接触这些的 所以 小谢有什么地方做的不对的 请大家不吝赐教 小谢一定感激不尽......

     

    最新回复(0)