#include<stdio.h>
#include<string.h>
int main()
{
char string[40];
char a=getchar();
float b;
scanf("%s",string);
while(a!='\n')
{
if(a=='W')
{
b++;
}
a=getchar();
}
printf("%.2f %d",b/strlen(string),strlen(string));
}
你可以把char a=getchar();放到while循环和scanf("%s",string);之间,那样就不会出现长度少1的问题了。
得看你想要干什么,我看不出来你的a是干嘛的,只是想记录最后输入了几个W字符吗?
因为你输入的第一个字符被赋值给了a,string中包含从第二个字符开始的字符串,长度少1。