c++ - 为什么控制台要求更多输入?C++
问题描述
我正在尝试制作一个程序,在该程序中,我根据乘车类型和用户租用东西的时间来计算费用。我想出了如何做到这一点的方法,但是当我尝试读取输入时,控制台不断要求更多输入。
double computeFee(){
double fee, hour_rate, minute_rate;
char ride_type, colon;
int hour_started, minute_started, hour_ended, minute_ended, total_minutes;
cin >> ride_type >> hour_started >> colon >> minute_started >> colon >> hour_ended >> colon >> minute_ended;
total_minutes = ((hour_ended * 60) + minute_ended) - ((hour_started * 60) + minute_started);
switch(ride_type){
case 'J':
hour_rate = 500;
minute_rate = 10;
break;
case 'K':
hour_rate = 200;
minute_rate = 5;
break;
case 'B':
hour_rate = 100;
minute_rate = 2;
break;
case '0':
return 1;
break;
}
if (total_minutes < 60){
fee = total_minutes * minute_rate;
}else{
fee = ((total_minutes/60) * hour_rate) + ((total_minutes%60) * minute_rate);
}
return fee;
}
int main(){
double total, fee;
computeFee();
fee = computeFee();
cout << fee;
return 0;
}
解决方案
每次调用computeFee()
,都会执行函数代码。在您的代码中,您调用它两次,因此它会要求您输入两次。并且鉴于您第一次调用它时没有分配它,第一个输入将丢失。为了让它按照你想要的方式工作,你的main
代码应该是:
int main(){
double fee;
fee = computeFee();
cout << fee;
return 0;
}
推荐阅读
- python - SSH 脚本返回 ascii 十六进制代码
- react-native - 使用部分列表和平面列表反应原生条件渲染
- rest - 自定义操作中的 API PLATFORM 自定义标识符
- batch-file - 如何使用批处理脚本在两个模式之间提取字符串?
- oracle - 没有在规范中声明就无法调用 Oracle 包函数
- javascript - 如何使用 Joi 检查范围对象数组中是否有任何重叠
- python - 使用 Python 检查 MPEG 传输流的第一个字节是否是同步字节
- html - 通过AngularJS在html表中显示列表中的列表
- pandas - 将两个 pandas 数据帧与 modin.pandas 合并会产生 ValueError
- python - 使用 POST 请求发送 multipart/form-data 字符串,python