79563689 发表于 2018-11-12 12:20:03

while语句程序问题求助

1、以下是我打的程序:
#include <stdio.h>
int main()
{

        int i = 0;   
        int ch;
        printf("请输入一句英文:") ; //输入的英文是:I love FishC.com
        while(getchar()!='\n')
       
          {
                ch=getchar();
                  if(65<=ch&&ch<=90)
       
              {
                i=i+1;
          }
   
      }
        printf("您输入的大写字母的个数为:%d\n",i);
       
        return 0;
}

为什么输入的答案是2个?

小甲鱼的答案是:
#include <stdio.h>
int main()
{

        int i = 0;   
        int ch;
        printf("请输入一句英文:") ;//输入的英文是:I love FishC.com

        while((ch=getchar())!='\n')
       
          {
          
                  if(65<=ch&&ch<=90)
       
              {
                i=i+1;
          }
   
      }
        printf("您输入的大写字母的个数为:%d\n",i);
       
        return 0;
}
输出的答案是:3个。

为啥结果不一样呢?

pheron 发表于 2018-11-12 12:25:46

因为你的程序在while()那里执行了一次getcgar()然后在ch=getchar()那里又执行了一次getchar(),所以丢失了一半的输入

79563689 发表于 2018-11-12 12:33:50

谢谢,之前乌云密布,看了大侠的回答,茅塞顿开!
页: [1]
查看完整版本: while语句程序问题求助