问个字符相减的问题

来源:百度知道 编辑:UC知道 时间:2024/07/04 23:35:13
1 #include<iostream>
2 using namespace std;
3 class circle
4 {
5 private:
6 float radius;
7 public:
8 float getarea();
9 circle(int r=0){radius=r;}
10 };
11 //类函数的实现
12 float circle::getarea()
13 {
14 return 3.14159*radius*radius;
15 }
16 //
17 int main()
18 {
19 float r;
20 char b;
21 do{
22 cout<<"请输入半径:";cin>>r;
23 circle a(r);
24 cout<<"该圆的面积是:"<<a.getarea()<<endl;
25
26 cout<<"是否进行新的运算(Y/N):";
27 cin>>b;
28 //}while((b-'n')&&(b-'N'));
29 }while ((b=='y')||(b=='Y'));
30 }
~
问题就在while判断的那一块
第28行运行不成功,
第29行可以,
程序很简单,
想问一下28行那样处理,为什么不行?

没问题,
输入n,N时退出

简化程序:
#include<iostream>
using namespace std;
int main()
{
float r;
char b;
do{
cout<< "ny";
cin>>b;
}while((b-'n')&&(b-'N'));
}

好象没问题吧,只是只有当输入n,N时才退出,其他任何键都不会。

当然不行 字符类型不一样,运算会出问题的。