鱼C论坛

 找回密码
 立即注册
查看: 1314|回复: 5

[已解决]这个e的值输不输入e最小都为1

[复制链接]
发表于 2021-8-27 15:28:14 | 显示全部楼层 |阅读模式

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

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

x
#include <stdio.h>

int main()
{
        int a=0,i=0,o=0,u=0,j,sum=0,count=0;
        int e=0;
        char str[10000];
        printf("请输入一串英文:");
        scanf("%s",&str);
        while(1)
        {
                if(str[count] == '\n')
                break;
                count++;
                sum++;
        }
        count=0;
        for(j=0;j<sum;j++)
        {
                if(str[count]=='a' or str[count]=='A')
                a=a+1;
                if(str[count]=='e' or str[count]=='E')
                e=e+1;
                if(str[count]=='i' or str[count]=='I')
                i=i+1;
                else if(str[count]=='o' or str[count]=='O')
                o=o+1;
            if(str[count]=='u' or str[count]=='U')
                u=u+1;
                count++;
        }
        printf("a(%d),e(%d),i(%d),o(%d),u(%d)",a,e,i,o,u);
}
最佳答案
2021-8-27 20:23:36

  1. int main()
  2. {
  3.         int a=0,i=0,o=0,u=0,j,sum=0,count=0;
  4.         int e=0;
  5.         char str[10000];
  6.         printf("请输入一串英文:");
  7.         scanf("%s",&str);
  8.         char ch=getchar();
  9.         printf("%d\n",ch);//你看看10就是\n
  10.         while(1)
  11.         {
  12.                 if(str[count] == '\0')//字符串都是以\0结尾的。
  13.                 break;
  14.                 count++;
  15.                 sum++;
  16.         }
  17.         count=0;
  18.         for(j=0;j<sum;j++)
  19.         {
  20.                 if(str[count]=='a' || str[count]=='A')
  21.                 a=a+1;
  22.                 if(str[count]=='e' || str[count]=='E')
  23.                 e=e+1;
  24.                 if(str[count]=='i' || str[count]=='I')
  25.                 i=i+1;
  26.                 else if(str[count]=='o' || str[count]=='O')
  27.                 o=o+1;
  28.             if(str[count]=='u' || str[count]=='U')
  29.                 u=u+1;
  30.                 count++;
  31.         }
  32.         printf("a(%d),e(%d),i(%d),o(%d),u(%d)",a,e,i,o,u);

  33.         return 0;
  34. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-8-27 18:04:46 | 显示全部楼层
or是啥
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-8-27 18:27:12 | 显示全部楼层

额,,改过来了,但是e的最小值还是1。。不是0
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-27 20:23:36 | 显示全部楼层    本楼为最佳答案   

  1. int main()
  2. {
  3.         int a=0,i=0,o=0,u=0,j,sum=0,count=0;
  4.         int e=0;
  5.         char str[10000];
  6.         printf("请输入一串英文:");
  7.         scanf("%s",&str);
  8.         char ch=getchar();
  9.         printf("%d\n",ch);//你看看10就是\n
  10.         while(1)
  11.         {
  12.                 if(str[count] == '\0')//字符串都是以\0结尾的。
  13.                 break;
  14.                 count++;
  15.                 sum++;
  16.         }
  17.         count=0;
  18.         for(j=0;j<sum;j++)
  19.         {
  20.                 if(str[count]=='a' || str[count]=='A')
  21.                 a=a+1;
  22.                 if(str[count]=='e' || str[count]=='E')
  23.                 e=e+1;
  24.                 if(str[count]=='i' || str[count]=='I')
  25.                 i=i+1;
  26.                 else if(str[count]=='o' || str[count]=='O')
  27.                 o=o+1;
  28.             if(str[count]=='u' || str[count]=='U')
  29.                 u=u+1;
  30.                 count++;
  31.         }
  32.         printf("a(%d),e(%d),i(%d),o(%d),u(%d)",a,e,i,o,u);

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

使用道具 举报

 楼主| 发表于 2021-8-27 20:33:33 | 显示全部楼层

字符串结尾前有个换行符吧,以这个为跳出循环的判断依据行不通吗。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-27 20:44:27 | 显示全部楼层
本帖最后由 jhq999 于 2021-8-27 20:47 编辑
黄jz 发表于 2021-8-27 20:33
字符串结尾前有个换行符吧,以这个为跳出循环的判断依据行不通吗。。


先说明我用的是VS,scanf只接收按回车前的字符串,后面按回车产生的换行符不接收.

                i        0x00000000        int
-                str        0x0039d0a0 "hhujhj"        char[0x00002710]
                [0x00000000]        0x68 'h'        char
                [0x00000001]        0x68 'h'        char
                [0x00000002]        0x75 'u'        char
                [0x00000003]        0x6a 'j'        char
                [0x00000004]        0x68 'h'        char
                [0x00000005]        0x6a 'j'        char
                [0x00000006]        0x00 '\0'        char
                [0x00000007]        0xcc '?'        char
                [0x00000008]        0xcc '?'        char
                [0x00000009]        0xcc '?'        char
                [0x0000000a]        0xcc '?'        char
                …………
那里有\n?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-3 12:01

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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