这个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);
} or是啥 万千只cnm 发表于 2021-8-27 18:04
or是啥
额,,改过来了,但是e的最小值还是1。。不是0
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;
}
jhq999 发表于 2021-8-27 20:23
字符串结尾前有个换行符吧,以这个为跳出循环的判断依据行不通吗。。 本帖最后由 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]