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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

花了一个小时终于做出来了
当要计算空格得字数得时候:代码如下
  1. int main()
  2. {
  3.     char str[] = "Welcome to Chinaworld";
  4.     int a[50] ; //用于标记字母
  5.     for (int i = 0; i < strlen(str); i++)
  6.     {
  7.         a[i] = 1; //初始化,所有的标记都为1
  8.     }

  9.     for(int i = 0;i < strlen(str);i++)
  10.     {
  11.         int count = 1;
  12.         if (a[i] == 1)
  13.         {
  14.          for (int j = i+1; j < strlen(str); j++)
  15.                 {
  16.                     if ((str[j] >= 'A' && str[j] <= 'Z')||(str[j] >= 'a' && str[j] <= 'z'))
  17.                     {
  18.                         if ((str[i] == str[j])||(str[i] == (str[j]-32))||(str[i] == (str[j]+32)))
  19.                         {
  20.                             a[j] = 0; //当被计算,归0
  21.                             count++;
  22.                         }
  23.                     }else
  24.                     {
  25.                         if (str[i] == str[j])
  26.                         {
  27.                             a[j] = 0; //当被计算,归0
  28.                             count++;
  29.                         }
  30.                     }
  31.             }
  32.             
  33.             printf("%c-%d\n ",str[i],count);
  34.    
  35.        }
  36.     }
  37.   
  38.     return 0;
  39. }
复制代码

当只需要计算字母的个数的时候,只需要多加一个字母的判断
  1. int main()
  2. {
  3.     char str[] = "Welcome to Chinaworld";
  4.     int a[50] ; //用于标记字母
  5.     for (int i = 0; i < strlen(str); i++)
  6.     {
  7.         a[i] = 1; //初始化,所有的标记都为1
  8.     }

  9.     for(int i = 0;i < strlen(str);i++)
  10.     {
  11.         int count = 1;
  12.         if (((str[i] >= 'A' && str[i] <= 'Z')||(str[i] >= 'a' && str[i] <= 'z'))&&(a[i] == 1))
  13.         {
  14.             if ((str[i] >= 'A' && str[i] <= 'Z')||(str[i] >= 'a' && str[i] <= 'z'))
  15.             {
  16.                 for (int j = i+1; j < strlen(str); j++)
  17.                 {
  18.                     if ((str[j] >= 'A' && str[j] <= 'Z')||(str[j] >= 'a' && str[j] <= 'z'))
  19.                     {
  20.                         if ((str[i] == str[j])||(str[i] == (str[j]-32))||(str[i] == (str[j]+32)))
  21.                         {
  22.                             a[j] = 0; //当被计算,归0
  23.                             count++;
  24.                            
  25.                         }
  26.                     }
  27.                     
  28.                 }
  29.             }
  30.             
  31.             printf("%c-%d\n ",str[i],count);
  32.    
  33.        }
  34.     }
  35.   
  36.     return 0;
  37. }
复制代码



4 个回复

倒序浏览
:lol 加油加油 ----我要一步一步往上爬~
回复 使用道具 举报
不懂啊.......
回复 使用道具 举报
加油加油 ----
回复 使用道具 举报
写的挺好的 ,我觉得用结构体数组来做应该更简单,有空你可以写一下试试
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马