鱼C论坛

 找回密码
 立即注册
查看: 922|回复: 7

[已解决]求句子中元音字母数

[复制链接]
发表于 2020-8-6 10:40:04 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
代码
  1. #include <stdio.h>

  2. int main()
  3. {
  4.         int counta,counte,counti,counto,countu;
  5.         int ch,sum=0;
  6.        
  7.         printf("请输入一个英文句子:\n");
  8.         while(getchar()!='\n')
  9.         {
  10.                 ch=getchar();
  11.                 switch(ch)
  12.                 {
  13.                         case 'a':counta++;
  14.                         case 'A':counta++;
  15.                         case 'e':counte++;
  16.                         case 'E':counte++;
  17.                         case 'i':counti++;
  18.                         case 'I':counti++;
  19.                         case 'o':counto++;
  20.                         case 'O':counto++;
  21.                         case 'u':countu++;
  22.                         case 'U':countu++;
  23.                 }
  24.         }
  25.        
  26.         if(counta>=1)
  27.         {
  28.                 sum++;
  29.         }
  30.         if(counte>=1)
  31.         {
  32.                 sum++;
  33.         }
  34.         if(counti>=1)
  35.         {
  36.                 sum++;
  37.         }
  38.         if(counto>=1)
  39.         {
  40.                 sum++;
  41.         }
  42.         if(countu>=1)
  43.         {
  44.                 sum++;
  45.         }
  46.        
  47.         printf("您输入的句子中,包含元音字母%d个!\n",sum);
  48.         printf("其中:a(%d),e(%d),i(%d),o(%d),u(%d)",counta,counte,counti,counto,countu);
  49.        
  50.         return 0;
  51. }
复制代码


运行结果......
  1. 请输入一个英文句子:
  2. aeiou

  3. 您输入的句子中,包含元音字母4个!
  4. 其中:a(0),e(3),i(2),o(61),u(4)
  5. --------------------------------
  6. Process exited after 11.87 seconds with return value 0
  7. 请按任意键继续. . .
复制代码


程序目的:用户输入一行英文句子,当用户按下回车时,结束运算,输出结果,要求一:计算句子所含元音字母种类数(如aeio算4种,aaeio也是四种)要求二:计算句子中所含每种元音字母的个数(如输入aeiio,期待结果为a(1),e(1),i(2),o(1),u(0))
结果1为什么错得这么离谱啊,求助要求二
最佳答案
2020-8-6 10:45:05
改成这样:
  1. #include <stdio.h>

  2. int main()
  3. {
  4.         int counta = 0,counte = 0,counti = 0,counto = 0,countu = 0;
  5.         int ch,sum=0;
  6.         
  7.         printf("请输入一个英文句子:\n");
  8.         while((ch = getchar())!='\n')
  9.         {

  10.                 switch(ch)
  11.                 {
  12.                         case 'a':counta++;break;
  13.                         case 'A':counta++;break;
  14.                         case 'e':counte++;break;
  15.                         case 'E':counte++;break;
  16.                         case 'i':counti++;break;
  17.                         case 'I':counti++;break;
  18.                         case 'o':counto++;break;
  19.                         case 'O':counto++;break;
  20.                         case 'u':countu++;break;
  21.                         case 'U':countu++;break;
  22.                 }
  23.         }
  24.         
  25.         if(counta>=1)
  26.         {
  27.                 sum++;
  28.         }
  29.         if(counte>=1)
  30.         {
  31.                 sum++;
  32.         }
  33.         if(counti>=1)
  34.         {
  35.                 sum++;
  36.         }
  37.         if(counto>=1)
  38.         {
  39.                 sum++;
  40.         }
  41.         if(countu>=1)
  42.         {
  43.                 sum++;
  44.         }
  45.         
  46.         printf("您输入的句子中,包含元音字母%d个!\n",sum);
  47.         printf("其中:a(%d),e(%d),i(%d),o(%d),u(%d)",counta,counte,counti,counto,countu);
  48.         
  49.         return 0;
  50. }
复制代码

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-8-6 10:41:59 | 显示全部楼层
没有初始化,没有break;,while()里getchar()每次吃掉一个字符
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-6 10:45:05 | 显示全部楼层    本楼为最佳答案   
改成这样:
  1. #include <stdio.h>

  2. int main()
  3. {
  4.         int counta = 0,counte = 0,counti = 0,counto = 0,countu = 0;
  5.         int ch,sum=0;
  6.         
  7.         printf("请输入一个英文句子:\n");
  8.         while((ch = getchar())!='\n')
  9.         {

  10.                 switch(ch)
  11.                 {
  12.                         case 'a':counta++;break;
  13.                         case 'A':counta++;break;
  14.                         case 'e':counte++;break;
  15.                         case 'E':counte++;break;
  16.                         case 'i':counti++;break;
  17.                         case 'I':counti++;break;
  18.                         case 'o':counto++;break;
  19.                         case 'O':counto++;break;
  20.                         case 'u':countu++;break;
  21.                         case 'U':countu++;break;
  22.                 }
  23.         }
  24.         
  25.         if(counta>=1)
  26.         {
  27.                 sum++;
  28.         }
  29.         if(counte>=1)
  30.         {
  31.                 sum++;
  32.         }
  33.         if(counti>=1)
  34.         {
  35.                 sum++;
  36.         }
  37.         if(counto>=1)
  38.         {
  39.                 sum++;
  40.         }
  41.         if(countu>=1)
  42.         {
  43.                 sum++;
  44.         }
  45.         
  46.         printf("您输入的句子中,包含元音字母%d个!\n",sum);
  47.         printf("其中:a(%d),e(%d),i(%d),o(%d),u(%d)",counta,counte,counti,counto,countu);
  48.         
  49.         return 0;
  50. }
复制代码

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-6 10:46:13 | 显示全部楼层
  1. #include <stdio.h>

  2. int main()
  3. {
  4.         int counta = 0,counte = 0,counti = 0,counto = 0,countu = 0;//初始化
  5.         int ch,sum=0;
  6.         
  7.         printf("请输入一个英文句子:\n");
  8.         while((ch = getchar())!='\n')
  9.         {
  10.                 switch(ch)
  11.                 {
  12.                         case 'a':counta++;break;//break退出
  13.                         case 'A':counta++;break;
  14.                         case 'e':counte++;break;
  15.                         case 'E':counte++;break;
  16.                         case 'i':counti++;break;
  17.                         case 'I':counti++;break;
  18.                         case 'o':counto++;break;
  19.                         case 'O':counto++;break;
  20.                         case 'u':countu++;break;
  21.                         case 'U':countu++;break;
  22.                 }
  23.         }
  24.         
  25.         if(counta>=1)
  26.         {
  27.                 sum++;
  28.         }
  29.         if(counte>=1)
  30.         {
  31.                 sum++;
  32.         }
  33.         if(counti>=1)
  34.         {
  35.                 sum++;
  36.         }
  37.         if(counto>=1)
  38.         {
  39.                 sum++;
  40.         }
  41.         if(countu>=1)
  42.         {
  43.                 sum++;
  44.         }
  45.         
  46.         printf("您输入的句子中,包含元音字母%d个!\n",sum);
  47.         printf("其中:a(%d),e(%d),i(%d),o(%d),u(%d)",counta,counte,counti,counto,countu);
  48.         
  49.         return 0;
  50. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-6 10:46:21 | 显示全部楼层
baige 发表于 2020-8-6 10:41
没有初始化,没有break;,while()里getchar()每次吃掉一个字符

  1. 请输入一个英文句子:
  2. aeiou
  3. 您输入的句子中,包含元音字母5个!
  4. 其中:a(2),e(4),i(6),o(8),u(10)
  5. --------------------------------
  6. Process exited after 4.092 seconds with return value 0
  7. 请按任意键继续. . .
复制代码
  1. int counta=0,counte=0,counti=0,counto=0,countu=0;
复制代码
  1. while(ch!='\n')
复制代码


这怎么还递增了啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-6 10:47:09 | 显示全部楼层


你看一眼我的回复
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-6 10:47:54 | 显示全部楼层
qiuyouzhi 发表于 2020-8-6 10:47
你看一眼我的回复

ok,我没写break.......
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-6 10:48:15 | 显示全部楼层
  1. #include <stdio.h>

  2. int main()
  3. {
  4.     int counta = 0, counte = 0, counti = 0, counto = 0, countu = 0, sum;
  5.     char ch;


  6.     printf("请输入一个英文句子:\n");

  7.     while ((ch=getchar()) != '\n')
  8.     {
  9.         switch (ch)
  10.         {
  11.             case 'a':
  12.             case 'A':
  13.                 counta++;
  14.                 break;

  15.             case 'e':
  16.             case 'E':
  17.                 counte++;
  18.                 break;

  19.             case 'i':
  20.             case 'I':
  21.                 counti++;
  22.                 break;

  23.             case 'o':
  24.             case 'O':
  25.                 counto++;
  26.                 break;

  27.             case 'u':
  28.             case 'U':
  29.                 countu++;
  30.                 break;
  31.         }
  32.     }


  33.     sum = counta + counte + counti + counto + countu;

  34.     printf("您输入的句子中,包含元音字母%d个!\n其中:a(%d),e(%d),i(%d),o(%d),u(%d)", sum, counta, counte, counti, counto, countu);

  35.     return 0;
  36. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-12 16:57

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表