程序似乎正在执行if语句

时间:2013-10-29 01:05:35

标签: c++

所以我需要程序来执行满足条件的if语句之一。我使用的输入是70,15和30,000.It应该进入第二个if语句。这是代码。

#include <iostream>
#include <fstream>
using namespace std;
int information1(int hourR);
int information2(int conTime);
int information3(int income1);
int hourR,conTime,income1;
ofstream outfile;

int information1(int hourR)
{
  cout<<"Enter hourly rate.";
  cin>>hourR;
  return hourR;
}

int information2(int conTime)
{
  cout<<"Enter total consulting time in minutes.";
  cin>>conTime;
  return conTime;
}

int information3(int income1)
{
  cout<<"Enter income.";
  cin>>income1;
  return income1;
}

int main()
{
  int hours,consultTime,income,fortyPercent,seventyPercent;
  outfile.open("Billing amount.txt");
  hours=information1(hourR);
  consultTime=information2(conTime);
  income=information3(income1);


if(income<=25000) {
if(consultTime<=30) {
outfile<<"No service charge.";
}
else {

    fortyPercent=hours*.4*45/60;
    outfile<<fortyPercent;
    }
}

else
{
if(consultTime<=20){

outfile<<"No service charge.";
}   
else
{
seventyPercent=hours*.7*45/60;
outfile<<seventyPercent;
}
}
      outfile.close();
      return 0;
    }

也可以告诉我,我是否正在进行正确的计算?因为这让我很困惑,这就是问题所在。

在税收季节,每个星期五,J&amp; J会计师事务所都会提供帮助 给那些准备自己纳税申报表的人。他们的指控如下:

一个。如果一个人收入低(<= 25,000)并且咨询时间较短 超过或等于30分钟,没有收费;否则,服务 收费是30分钟内正常小时费率的40%。

湾对于其他人,如果咨询时间小于或等于20分钟,那么 没有服务费;否则,服务费是常规的70% 每小时超过20分钟的时间。

(例如,假设一个人收入低,花了1小时15分钟, 而每小时的费用是70.00美元。然后结算金额为70.00 * 0.40 *(45/60)= $ 21,00。)

1 个答案:

答案 0 :(得分:2)

您目前拥有的结构如下:

if(someCondition) {
     //doStuff
} else {
     //do something else
}

if(someOtherCondition) {
    //do stuff
} else {
    //do something else
}

代码将执行FIRST if对的elseif else以及SECOND对的ifelse

我能想到的最简单的解决方案如下:

if(income<=25000) {
    if(consultTime<=30) {
        //do stuff
    } else { //this else is paired with if(consultTime<30) and within the if(income<=30)
        //do stuff when income<=25000 and consultTime>30
    }
} else /*income>250000*/ { //this else is paired with if(income<=25000)
    if(consultTime<=20) {
        //do stuff
    } else { //this else is paired with if(consultTime<=20) and within the else paired with if(income<=30)
       //do stuff when income>25000 and consultTime>20
    }
}