为了账号安全,请及时绑定邮箱和手机立即绑定

为什么我这段代码中string中的字母数与输出的字母数不符

#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));
 
}

正在回答

3 回答

你可以把char a=getchar();放到while循环和scanf("%s",string);之间,那样就不会出现长度少1的问题了。

1 回复 有任何疑惑可以回复我~
#1

慕九州7466166 提问者

谢谢啦
2017-11-13 回复 有任何疑惑可以回复我~

得看你想要干什么,我看不出来你的a是干嘛的,只是想记录最后输入了几个W字符吗?

0 回复 有任何疑惑可以回复我~

因为你输入的第一个字符被赋值给了a,string中包含从第二个字符开始的字符串,长度少1。

1 回复 有任何疑惑可以回复我~
#1

慕九州7466166 提问者

那应该怎么解决呢
2017-11-09 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么我这段代码中string中的字母数与输出的字母数不符

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信