首页 新闻 赞助 找找看

c++关于while,continue的问题

0
[待解决问题]

#include<iostream>
int main()
{
int n=0;
char c;
c=std::cin.get();
while(c!='\0'){
if((c>'A'&&c<'Z')||(c>'a'&&c<'z'))n++;
continue;
}
std::cout<<n;
}
要编写一个c++程序,实现统计从键盘上输入的一串字符所包含英文字母的个数(以空格结束输入),上述程序那里出错了

c++
qianyu的主页 qianyu | 菜鸟二级 | 园豆:202
提问于:2017-03-19 18:37
< >
分享
所有回答(8)
0

continue去掉没任何影响.

吴瑞祥 | 园豆:29449 (高人七级) | 2017-03-19 20:39

但是运行没有结果啊

支持(0) 反对(0) qianyu | 园豆:202 (菜鸟二级) | 2017-03-19 20:59

@qianyu: 打断点没有..c的值是多少.

而且你循环里也没重新给c赋值啊

支持(0) 反对(0) 吴瑞祥 | 园豆:29449 (高人七级) | 2017-03-19 21:22

@吴瑞祥: 那这个程序该如何编写呢

支持(0) 反对(0) qianyu | 园豆:202 (菜鸟二级) | 2017-03-19 21:35
1

1.首先空格并不是\0,ASCII码是32

2.其次应该是c >= 'A' && c <= 'Z' || c >= 'a' && c <= 'z'

jello chen | 园豆:7306 (大侠五级) | 2017-03-19 22:35
0

1,while 循环条件写的十分有问题

2,在循环体中没有迭代,是个死循环

悦光阴 | 园豆:2251 (老鸟四级) | 2017-03-20 09:06
0
 1 #include<iostream>
 2 int main()
 3 {
 4     int n = 0;
 5     char c;
 6     c = std::cin.get();
 7     //while( c!='\0' )
 8     while( c!=' ' )
 9     {
10         //if( ( c>'A' && c<'Z') || ( c>'a'  && c<'z' ) ) //AaZz will not be counted
11         if( ( c>='A' && c<='Z') || ( c>='a'  && c<='z' ) )
12             n++;
13         //continue;
14         // get next input
15         c = std::cin.get();
16     }
17     std::cout<<n;
18 }

以上是修改你的代码,一下是另一个版本

 1 #include<iostream>
 2 int main()
 3 {
 4     int n = 0;
 5     char c = 0;
 6     do
 7     {
 8         c = std::cin.get();
 9         if( ( c>='A' && c<='Z') || ( c>='a'  && c<='z' ) )
10         {
11             n++;
12         }
13     } while(c != ' ');
14     std::cout << n;
15     return 0;
16 }
++C+C++ | 园豆:202 (菜鸟二级) | 2017-03-23 13:22
0

看一下修改把你的代码

#include<iostream>
 int main()
  {
      int n = 0;
      char c;
      c = std::cin.get();
      while( c!=' ' )
     {

         if( ( c>='A' && c<='Z') || ( c>='a'  && c<='z' ) )
            n++;
         c = std::cin.get();
     }
     std::cout<<n;
 }

fcyh | 园豆:568 (小虾三级) | 2017-07-04 16:49
0

死循环太明显了  你一直在判断你第一次输入的字符出不来了。

MyCPlusPlus | 园豆:43 (初学一级) | 2017-08-29 10:59
0

你的代码只读入了一个字符啊。。你如果想读入一串字符,就用string啊。

int main()
{
    string s;
    cin >> s;
    //do sth.
}
Aehnuwx | 园豆:263 (菜鸟二级) | 2018-07-10 11:57
0

你的代码只读了一个字符,正确这样。

include<iostream>

int main()
{
int n=0;
char c;
while(c!=' '){
c=std::cin.get();
if((c>'A'&&c<'Z')||(c>'a'&&c<'z'))n++;
}
std::cout<<n;
}

beelake | 园豆:218 (菜鸟二级) | 2019-03-17 19:30
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册