基本的编码麻烦,C ++的新手 [英] trouble with basic coding, new to c++

查看:65
本文介绍了基本的编码麻烦,C ++的新手的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是C ++的新手.我试图让这个程序正常运行.对于我的一生,我找不到我的错误.我相信这对许多人来说都是显而易见的.

它可以编译,但是在运行时会直接进入系统暂停状态.

#include <iostream>
using namespace std;


void description();
double getDataz();
int printDataz(double salesAmount, double commissionRate, double totalBonus);

int main()
{
     cout << "main entered";
     description();
     cout << "description called";
     double salesAmount, commissionRate, totalBonus = getDataz();
     cout << "getdataz called";
     printDataz(salesAmount, commissionRate, totalBonus);
     cout << "printdataz called";
     return 0;
}

void description()
{
     cout << "This program will calculate the commission rate and total bonus "
          << "for an associate''s sales";
     return;
}

double getDataz()
{
       double salesAmount;
       double commissionRate;
       double totalBonus;
       
       
       
       cout << "\n\n\nPlease enter the sales amount:";
       cin  >> salesAmount;
       
       if      (salesAmount < 20000) commissionRate = .04;
       else if  (salesAmount >= 20000 && salesAmount < 30000) commissionRate = .05;
       else if  (salesAmount >= 30000 && salesAmount < 40000) commissionRate = .06;
       else if  (salesAmount >= 40000 && salesAmount < 50000) commissionRate = .07;
       else if  (salesAmount >= 50000) commissionRate = .09;
       
       totalBonus = salesAmount * commissionRate;
       
       return salesAmount, commissionRate, totalBonus;
}
       
int printDataz(double salesAmount, double commissionRate, double totalBonus)
{
     cout << "\n\nThe commission rate for $"<<salesAmount<<" is: " << commissionRate<<endl;
     cout << "The total bonus is: $"<<totalBonus;
     system("pause");
     return 0;
}




[修改]删除了救救我!"在2个地点. [\ modified]

谢谢!!

解决方案

<< salesAmount<<"是:<<佣金率<< endl; cout<< 总奖金为:


"<< totalBonus; 系统(暂停"); 返回0; }




[修改]删除了救救我!"在2个地点. [\ modified]

谢谢! /> 您不能从C++函数返回3值(仅允许一个值).
代码之所以编译是因为逗号运算符会丢弃除最后一个值以外的所有值.

一个简单的解决方案是通过引用传递三个参数:

  void  getDataz( double & salesAmount, double & totalBonus)
{
      cout<< " ;
       cin>>销售金额;
       
       如果(salesAmount<  20000 )CommissionRate =. 04 ;
       其他 如果(salesAmount> =  20000  && salesAmount<  30000 )CommissionRate =. 05  ;;
       其他 如果(salesAmount> =  30000  && salesAmount<  40000 )CommissionRate =. 06  ;;
       其他 如果(salesAmount> =  40000  && salesAmount<  50000 )CommissionRate =. 07 ;
       其他 如果(salesAmount> =  50000  )CommissionRate =. 09 ;
       
       totalBonus = salesAmount *佣金率;
} 




[更新]
该程序

 #include   ><   iostream  > 
 使用 命名空间 std;


无效 description();
 void  getDataz( double & salesAmount, double & CommissionRate, double & totalBonus);
 int  printDataz( double  salesAmount, double  CommissionRate , double  totalBonus);

 int  main()
{
     double  salesAmount,commissionRate,totalBonus;
     cout<< " ;
     描述();
     cout<< " ;
      getDataz(salesAmount,佣金率,totalBonus);
     cout<< " ;
     printDataz(salesAmount,commissionRate,totalBonus);
     cout<< " ;
     返回  0 ;
}

无效 description()
{
     cout<< " 
          << " 返回;
}

 void  getDataz( double & salesAmount, double & CommissionRate,& totalBonus)
{
  /*  
       双倍销售金额;
       双重佣金率;
       双倍总奖金;
    */


       cout<< " ;
       cin>>销售金额;

       如果(salesAmount<  20000 )CommissionRate =. 04 ;
       其他 如果(salesAmount> =  20000  && salesAmount<  30000 )CommissionRate =. 05  ;;
       其他 如果(salesAmount> =  30000  && salesAmount<  40000 )CommissionRate =. 06  ;;
       其他 如果(salesAmount> =  40000  && salesAmount<  50000 )CommissionRate =. 07 ;
       其他 如果(salesAmount> =  50000  )CommissionRate =. 09 ;

       totalBonus = salesAmount *佣金率;

    // 返回salesAmount,佣金率,totalBonus; 
}

 int  printDataz( double  salesAmount, double  CommissionRate , double  totalBonus)
{
     cout<< " 




[modified] Removed "help me!!" in 2 locations. [\modified]

thanks!!

解决方案

"<<salesAmount<<" is: " << commissionRate<<endl; cout << "The total bonus is:


"<<totalBonus; system("pause"); return 0; }




[modified] Removed "help me!!" in 2 locations. [\modified]

thanks!!


hhaysMr_Gbg wrote:

return salesAmount, commissionRate, totalBonus;


You cannot return 3 values from a C++ function (only a value is allowed).
Code compiles because the comma operator discards all the values but the last.

A simple solution would be passing the three parameters by reference:

void getDataz(double & salesAmount, double & commissionRate, double & totalBonus)
{
      cout << "\n\n\nPlease enter the sales amount:";
       cin  >> salesAmount;
       
       if      (salesAmount < 20000) commissionRate = .04;
       else if  (salesAmount >= 20000 && salesAmount < 30000) commissionRate = .05;
       else if  (salesAmount >= 30000 && salesAmount < 40000) commissionRate = .06;
       else if  (salesAmount >= 40000 && salesAmount < 50000) commissionRate = .07;
       else if  (salesAmount >= 50000) commissionRate = .09;
       
       totalBonus = salesAmount * commissionRate;
}




[update]
This program

#include <iostream>
using namespace std;


void description();
void getDataz(double & salesAmount, double & commissionRate, double & totalBonus);
int printDataz(double salesAmount, double commissionRate, double totalBonus);

int main()
{
    double salesAmount, commissionRate, totalBonus;
     cout << "main entered";
     description();
     cout << "description called";
      getDataz(salesAmount, commissionRate, totalBonus);
     cout << "getdataz called";
     printDataz(salesAmount, commissionRate, totalBonus);
     cout << "printdataz called";
     return 0;
}

void description()
{
     cout << "This program will calculate the commission rate and total bonus "
          << "for an associate's sales";
     return;
}

void getDataz(double & salesAmount, double & commissionRate, double & totalBonus)
{
  /*
       double salesAmount;
       double commissionRate;
       double totalBonus;
    */


       cout << "\n\n\nPlease enter the sales amount:";
       cin  >> salesAmount;

       if      (salesAmount < 20000) commissionRate = .04;
       else if  (salesAmount >= 20000 && salesAmount < 30000) commissionRate = .05;
       else if  (salesAmount >= 30000 && salesAmount < 40000) commissionRate = .06;
       else if  (salesAmount >= 40000 && salesAmount < 50000) commissionRate = .07;
       else if  (salesAmount >= 50000) commissionRate = .09;

       totalBonus = salesAmount * commissionRate;

    //   return salesAmount, commissionRate, totalBonus;
}

int printDataz(double salesAmount, double commissionRate, double totalBonus)
{
     cout << "\n\nThe commission rate for


这篇关于基本的编码麻烦,C ++的新手的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆