黄jz 发表于 2021-8-27 15:28:14

这个e的值输不输入e最小都为1

#include <stdio.h>

int main()
{
        int a=0,i=0,o=0,u=0,j,sum=0,count=0;
        int e=0;
        char str;
        printf("请输入一串英文:");
        scanf("%s",&str);
        while(1)
        {
                if(str == '\n')
                break;
                count++;
                sum++;
        }
        count=0;
        for(j=0;j<sum;j++)
        {
                if(str=='a' or str=='A')
                a=a+1;
                if(str=='e' or str=='E')
                e=e+1;
                if(str=='i' or str=='I')
                i=i+1;
                else if(str=='o' or str=='O')
                o=o+1;
          if(str=='u' or str=='U')
                u=u+1;
                count++;
        }
        printf("a(%d),e(%d),i(%d),o(%d),u(%d)",a,e,i,o,u);
}

万千只cnm 发表于 2021-8-27 18:04:46

or是啥

黄jz 发表于 2021-8-27 18:27:12

万千只cnm 发表于 2021-8-27 18:04
or是啥

额,,改过来了,但是e的最小值还是1。。不是0

jhq999 发表于 2021-8-27 20:23:36


int main()
{
      int a=0,i=0,o=0,u=0,j,sum=0,count=0;
      int e=0;
      char str;
      printf("请输入一串英文:");
      scanf("%s",&str);
        char ch=getchar();
        printf("%d\n",ch);//你看看10就是\n
      while(1)
      {
                if(str == '\0')//字符串都是以\0结尾的。
                break;
                count++;
                sum++;
      }
      count=0;
      for(j=0;j<sum;j++)
      {
                if(str=='a' || str=='A')
                a=a+1;
                if(str=='e' || str=='E')
                e=e+1;
                if(str=='i' || str=='I')
                i=i+1;
                else if(str=='o' || str=='O')
                o=o+1;
            if(str=='u' || str=='U')
                u=u+1;
                count++;
      }
      printf("a(%d),e(%d),i(%d),o(%d),u(%d)",a,e,i,o,u);

      return 0;
}

黄jz 发表于 2021-8-27 20:33:33

jhq999 发表于 2021-8-27 20:23


字符串结尾前有个换行符吧,以这个为跳出循环的判断依据行不通吗。。

jhq999 发表于 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
                        0x68 'h'        char
                        0x68 'h'        char
                        0x75 'u'        char
                        0x6a 'j'        char
                        0x68 'h'        char
                        0x6a 'j'        char
                        0x00 '\0'        char
                        0xcc '?'        char
                        0xcc '?'        char
                        0xcc '?'        char
                        0xcc '?'        char
                …………
那里有\n?
页: [1]
查看完整版本: 这个e的值输不输入e最小都为1