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

来源:6-1 数组初体验

慕九州7466166

2017-11-07 23:37

#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回答

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

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

    慕九州746...

    谢谢啦

    2017-11-13 16:24:55

    共 1 条回复 >

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

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

    共 1 条回复 >

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

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

    慕九州746...

    那应该怎么解决呢

    2017-11-09 17:26:14

    共 1 条回复 >

C语言入门

C语言入门视频教程,带你进入编程世界的必修课-C语言

926028 学习 · 20793 问题

查看课程

相似问题