我想制作一个程序来做一些像添加和填充的用户制作的功能

时间:2017-03-23 21:48:14

标签: c++

#include <iostream>  
#include <math.h>
using namespace std ; 

int add (float,float);
int Multiply (float,float);
int division (float,float);
int subtract (float,float);


int main ()
{
float x,y,z;
float sum;
float multiply2;
float division2;
float subtract2;

   cout<<"please enter the 3 FLOAT numbers you would like to do the processes on"<<endl;
cin>>x>>y>>z;
 sum = addd(x, y,z);
 cout << "Sum = " << sum;
  return 0;

 multiply2 =  Multiplyy(x, y,z);
 cout << "multiply = " << multiply2;
 return 0;

division2 = divisionn(x, y,z);
cout << "division = " << division2;
return 0;

subtract2 =  subtractt(x, y,z);
cout << "subtract = "<<subtract2 << sum;
return 0;
}

 int addd(float a, float b,float c)
{
float addd;
addd = a + b + c;


return addd;
}

 int Multiplyy(float a, float b,float c)
{
float Multiplyy;
 Multiplyy = a * b * c;


return Multiplyy;
}

 int divisionn(float a, float b,float c)
{
float divisionn;
divisionn = a / b / c;


return divisionn;
}

int subtractt(float a, float b,float c)
 {
float subtractt;
subtractt = a - b -c;


return subtractt;
 }

它不起作用!它给了我错误,标识符没有定义! 所以,是的,我尝试了我能做的一切,现在已经很晚了,我真的不知道我错过了什么! 任何帮助都会非常好 谢谢!

1 个答案:

答案 0 :(得分:1)

您的转发声明不正确。你已经向前声明了你的函数接受两个float参数,但是你的定义需要三个参数。此外,前向声明的函数名称不正确(例如,您转发声明add,但之后调用并定义addd

修正您的函数转发声明,以取代(float, float, float)而不是(float, float),并将其命名为与您的程序的其余部分匹配,并it will compile

你还有其他的奇怪之处,比如在函数addd(以及你的其他函数中)声明一个名为addd的变量,这会令人困惑,但不会导致编译时间错误。这就是我所说的&#34;风格的错误&#34; - 程序仍然会运行,但源代码不必要地混淆。声明隐藏先前声明的标识符的新标识符称为&#34; shadowing,&#34;作为一般规则,应该避免它,因为它会造成混乱。

您的功能也会截断他们的结果,因为他们接受float值但返回int。计算的任何小数部分都将被丢弃。 (例如,addd(0.5, 1.5, 2.5)将返回4.5,但将返回4,因为float-to-int转换会丢弃小数0.5分量。)