#include <iostream>
#include <iomanip>
using namespace std;
int main () // print to console: 3.0*5.0=15.00
{
double a;
double b;
a =(3.0);
b =(5.0);
cout << " " << fixed << setprecision (1) << a << "\n" << endl;
cout << "* " << b << "\n" << endl;
cout << "------" << endl;
cout << fixed << setprecision (2) << a*b << "\n" << endl;
return 0;
}
int calculate (int a, int b, int c) // print to console: (7.1*8.3)-2.2=56.73
{
double a;
double b;
double c;
a = (7.1);
b = (8.3);
c = (2.2);
cout << " " << fixed << setprecision (1) << a << "\n" << endl;
cout << "* " << b << "\n" << endl;
cout << "- " << c << "\n" << endl;
cout << "------" << endl;
cout << setprecision(2) << (a*b)-c << "\n" << endl;
}
int calculation (int a, int b, int c) // print to console: 3.2/(6.1*5.0)=0.10
{
double a;
double b;
double c;
a=(3.2);
b=(6.1);
c=(5.0);
cout << " " << fixed << setprecision (1) << a << "\n" << endl;
cout << " /(6.1*5.0)" << endl; //how can I use variables instead of using quotes?
cout << "------" << endl;
cout << setprecision(2) << a/(b*c) << "\n" << endl;
system("PAUSE");
return 0;
}
我使用了一个重复的布局,我希望能够垂直打印3个函数,以便小数都排成一行。我似乎无法在没有错误的情况下进行打印,并认为我不理解错误输出足以进行必要的更改。我不知道我是否正确地重新定义了变量,或者我是否正确地将它们放在一起(使用{})。
感谢任何能帮助我实现这一目标的人。
这是输出:
(7): error C2082: redefinition of formal parameter 'a'
(8): error C2082: redefinition of formal parameter 'b'
(9): warning C4244: '=' : conversion from 'double' to 'int', possible loss of data
(10): warning C4244: '=' : conversion from 'double' to 'int', possible loss of data
(21): error C2082: redefinition of formal parameter 'a'
(22): error C2082: redefinition of formal parameter 'b'
(23): error C2082: redefinition of formal parameter 'c'
(24): warning C4244: '=' : conversion from 'double' to 'int', possible loss of data
(25): warning C4244: '=' : conversion from 'double' to 'int', possible loss of data
(26): warning C4244: '=' : conversion from 'double' to 'int', possible loss of data
(34): error C2601: 'calculation' : local function definitions are illegal
(20): this line contains a '{' which has not yet been matched
(51): fatal error C1075: end of file found before the left brace '{'
我该如何解决这些错误?
答案 0 :(得分:2)
你错过了结束后的支持:
int calculate (int a, int b, int c) // print to console: (7.1*8.3)-2.2=56.73
{
....
....
cout << setprecision(2) << (a*b)-c << "\n" << endl;
}
^^^^
由于两个函数中都有相同的命名符号,因此缺少的括号会导致符号名称被多次使用而违反一个定义规则,从而导致重新定义错误。
另外,请注意@ Ed.S在评论中正确指出的内容。
另外,请注意您可能需要在程序逻辑中考虑的类型转换警告。
答案 1 :(得分:0)
在}
功能之后,您错过了int calculate
。虽然不相关,但您也不必多次拨打fixed
和setprecision
。
答案 2 :(得分:0)
首先:
int main(int,int) - 非常非标准的程序入口点
下一个:
int main (int a, int b) // print to console: 3.0*5.0=15.00
{
double a;
double b;
您正在重新定义形式参数a和b
就是这样,这就是你的编译器所说的:
(7): error C2082: redefinition of formal parameter 'a'
(8): error C2082: redefinition of formal parameter 'b'
int calculate (int a, int b, int c) // print to console: (7.1*8.3)-2.2=56.73
{
double a;
double b;
double c;
你有相同的局部变量和形式参数名称,我认为这不是你所期望的。
最后一个:
您在计算功能结束时缺少结束括号“}”。
#include <iostream>
#include <iomanip>
using namespace std;
int main () // print to console: 3.0*5.0=15.00
{
double a;
double b;
a =(3.0);
b =(5.0);
cout << " " << fixed << setprecision (1) << a << "\n" << endl;
cout << "* " << b << "\n" << endl;
cout << "------" << endl;
cout << fixed << setprecision (2) << a*b << "\n" << endl;
return 0;
}
int calculate () // print to console: (7.1*8.3)-2.2=56.73
{
double a;
double b;
double c;
a = (7.1);
b = (8.3);
c = (2.2);
cout << " " << fixed << setprecision (1) << a << "\n" << endl;
cout << "* " << b << "\n" << endl;
cout << "- " << c << "\n" << endl;
cout << "------" << endl;
cout << setprecision(2) << (a*b)-c << "\n" << endl;
}
int calculation () // print to console: 3.2/(6.1*5.0)=0.10
{
double a;
double b;
double c;
a=(3.2);
b=(6.1);
c=(5.0);
cout << " " << fixed << setprecision (1) << a << "\n" << endl;
cout << b << "*" << c << endl; //how can I use variables instead of using quotes?
cout << "------" << endl;
cout << setprecision(2) << a/(b*c) << "\n" << endl;
system("PAUSE");
return 0;
}