//6.5
#include
#include
using namespace std;
void main65()
{
int salary;
cout<<”Enter your salary:”;
cin>>salary;
while(salary>=0)//&&isdigit(salary))
{
if(salary<5000)
cout<<”Your salary is “<<salary<<” You shouldn’t!”<<endl;
else if(salary<15000)
cout<<”Your salary is “<<salary<<” ,Your sui is “<<salary*0.1<<endl;
else if(salary<35000)
cout<<”Your salary is “<<salary<<” ,Your sui is “<<salary*0.15<<endl;
else
cout<<”Your salary is “<<salary<<” ,Your sui is “<<salary*0.2<<endl;
cout<<”Enter your salary:”;
cin>>salary;
}
//cout<<salary<<” isdigit()”<<endl;//<<isdigit(salary)<<endl;
cout<<”Finish!”;
cin.get();
system(“pause”);
}
//2014-8-13 发现有个bug 那就是isdigit()函数的原型为 int isdigit(char c) 参数应该是一个char字符,如果是int类型,无论传递什么参数,返回的都是一个false值,salary的类型应该是char. 修改后的程序为:
#include
#include
using namespace std;
int main()
{
char salary;
cout<<”Enter your salary:”;
cin>>salary;
while(salary>=0&&isdigit(salary))
{
if(salary<5000)
cout<<”Your salary is “<<salary<<” You shouldn’t!”<<endl;
else if(salary<15000)
cout<<”Your salary is “<<salary<<” ,Your sui is “<<salary*0.1<<endl;
else if(salary<35000)
cout<<”Your salary is “<<salary<<” ,Your sui is “<<salary*0.15<<endl;
else
cout<<”Your salary is “<<salary<<” ,Your sui is “<<salary*0.2<<endl;
cout<<"Enter your salary:";
cin>>salary;
}
//cout<<salary<<" isdigit()"<<endl;//<<isdigit(salary)<<endl;
cout<<"Finish!"<<endl;
cin.get();
}
但是考虑到isdigit是检测单个字符,因此弃用。 修改完善后的程序如下:
#include
#include
using namespace std;
int main()
{
int salary;
cout<<”Enter your salary:”;
while(cin>>salary&&salary>=0)
{
if(salary<5000)
cout<<”Your salary is “<<salary<<” You shouldn’t!”<<endl;
else if(salary<15000)
cout<<”Your salary is “<<salary<<” ,Your sui is “<<salary*0.1<<endl;
else if(salary<35000)
cout<<”Your salary is “<<salary<<” ,Your sui is “<<salary*0.15<<endl;
else
cout<<”Your salary is “<<salary<<” ,Your sui is “<<salary*0.2<<endl;
cout<<"Enter your salary:";
// cin>>salary;
}
//cout<<salary<<" isdigit()"<<endl;//<<isdigit(salary)<<endl;
cout<<"error!Finish!"<<endl;
cin.get();
}
在linux下的运行截图: 感谢网友:ffx372580856和zhy137879的提醒,谢谢。 —–2014-8-13 于GDUT
—————————————————————————————————————————————————— //写的错误或者不好的地方请多多指导,可以在下面留言或者给我发邮件,指出我的错误以及不足,以便我修改,更好的分享给大家,谢谢。 转载请注明出处:https://www.royalchen.com/ author:royalchen Email:royalchen@royalchen.com ———————————————————————————————————————————————————
- 本文作者: royalchen
- 本文链接: http://www.royalchen.com/2016/02/24/cprimerplus第六版课后编程题答案65/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!