杀了我治愈我韩剧下载:C++编程,如何实现验证输入的内容是否为整型?

来源:百度文库 编辑:高校问答 时间:2024/04/30 01:05:38
题是这样的:编程序,输入正整数m代表钱数,求方案用最少的人民币(面值为100,50,20,10,5,2,1)凑成这个钱数,输出每种面值人民币各需多少张.以下是程序代码,帮我添加一个功能:验证输入的内容是否为整型且大于等于0,不是则提示错误.谢谢!
#include <iostream.h>
#include <string.h>
class money{private:
int total;
int result[7];
public:
money(int total);
void num();
int* getresult();
};
money::money(int a)
{total=a;
for(int i=0;i<7;i++)
result[i]=0;
}
void money::num()
{if(total>=100)
total-=100;
result[0]++;
this->num();
}
if(total>=50)
{total-=50;
result[1]++;
this->num();
}
if(total>=20)
{total-=20;
result[2]++;
this->num();
}
if(total>=10)
{total-=10;
result[3]++;
this->num();
}
if(total>=5)
{total-=5;
result[4]++;
this->num();
}
if(total>=2)
{total-=2;
result[5]++;
this->num();
}
if(total>=1)
{total-=1;
result[6]++;
this->num();
}
}
int* money::getresult()
{return result;
}
void main()
{int RMB;
cout<<" 欢迎使用!"<<endl;
cout<<"请输入你的钱数:"<<endl;
cin>>RMB;
money a=money(RMB);
a.num();
int* result=a.getresult();
cout<<"换成:一百圆"<<result[0]<<"张"<<endl;
cout<<"五十圆"<<result[1]<<"张"<<endl;
cout<<"贰十圆"<<result[2]<<"张"<<endl;
cout<<"十圆"<<result[3]<<"张"<<endl;
cout<<"五圆"<<result[4]<<"张"<<endl;
cout<<"贰圆"<<result[5]<<"张"<<endl;

string m;
int i=0,RMB=0;
cin>>m;
while(m[i])
if(m[i]<'0'||m[i]>'9')
{
cout<<"Not a integer number"<<endl;
exit(-1);
}
else
{
RMB=RMB*10+m[i]-'0';
i++;
}