问答详情
源自:6-1 数组初体验

为什么我这段代码中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));
 
}

提问者:慕九州7466166 2017-11-07 23:37

个回答

  • 我是小土豆
    2017-11-10 00:01:51
    已采纳

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

  • 我是小土豆
    2017-11-09 23:59:35

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

  • 我是小土豆
    2017-11-09 01:51:35

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