#include <iostream>
#include <iomanip>
using namespace std;
int calculate ()
{
double a;
double b;
a =(3.0);
b =(5.0);
cout << " " << fixed << setprecision (1) << a << "\n" << endl;
cout << "* " << fixed << setprecision (1) << b << "\n" << endl;
cout << "------" << endl;
cout << fixed << setprecision (2) << a*b << "\n" << endl;
system("PAUSE");
return 0;
}
int calculate(int a, int b, int c)
{
double a;
double b;
double c;
a =(7.1);
b =(8.3);
c =(2.2);
cout << " " << fixed << setprecision (1) << a << "\n" << endl;
cout << "* " << fixed << setprecision (1) << b << "\n" << endl;
cout << "- " << fixed << setprecision (1) << c << "\n" << endl;
cout << "------" << endl;
cout << fixed << setprecision (2) << (a*b)-c << "\n" << endl;
system("PAUSE");
return 0;
}
问题:为什么我必须改变双打---&gt;整数?有什么突出的错误吗?
这是输出: 1&gt; ------ Build build:项目:HW1-2,配置:调试Win32 ------ 1 GT; HW1-2.cpp 1&gt; c:\ users \ asus \ desktop \ hw1-2 \ hw1-2 \ hw1-2.cpp(21):错误C2082:重新定义形式参数&#39; a&#39; 1&gt; c:\ users \ asus \ desktop \ hw1-2 \ hw1-2 \ hw1-2.cpp(22):错误C2082:重新定义形式参数&#39; b&#39; 1&gt; c:\ users \ asus \ desktop \ hw1-2 \ hw1-2 \ hw1-2.cpp(23):错误C2082:重新定义形式参数&#39; c&#39; 1&gt; c:\ users \ asus \ desktop \ hw1-2 \ hw1-2 \ hw1-2.cpp(24):警告C4244:&#39; =&#39; :转换为&#39; double&#39;到&#39; int&#39;,可能会丢失数据 1&gt; c:\ users \ asus \ desktop \ hw1-2 \ hw1-2 \ hw1-2.cpp(25):警告C4244:&#39; =&#39; :转换为&#39; double&#39;到&#39; int&#39;,可能会丢失数据 1&gt; c:\ users \ asus \ desktop \ hw1-2 \ hw1-2 \ hw1-2.cpp(26):警告C4244:&#39; =&#39; :转换为&#39; double&#39;到&#39; int&#39;,可能会丢失数据 ==========构建:0成功,1个失败,0个最新,0个跳过==========
答案 0 :(得分:2)
你有两个名为main()
的函数。我不确定你要完成什么,但函数必须在命名空间中具有唯一的名称。
您可以随意命名您的功能。 main()
是特殊的,但它是程序的入口点,程序运行时会被调用。如果你有另一个功能,你需要在main()
内部自己调用它,如果你想要它被执行:
int foo(int c)
{
return c + 2;
}
int main()
{
int a = 1;
int b = foo(a);
return b;
}
答案 1 :(得分:0)
你最有可能出现问题:
(a*b)c
你想在这里完成什么?您的编译器应该抱怨缺少分号。它不是有效的c ++。您需要在(a*b)
和c
答案 2 :(得分:0)
(a*b)c
&lt; - 错误
如果你想要乘以,它应该是(a*b)*c
编辑 - 好像你想要这样做(a*b) - c
,也可以写成a*b - c
。
答案 3 :(得分:0)
我同意caleb:
您有两个main
个功能。
由于你的错误消息指向行21
,这恰好是第二个definition
主要开始的地方,我会说这是第一个错误。在那之后你有乘法错误,你按照其他人的说法省略了操作符。
Explanation of the difference of definition and declaration
只是一个风格提示:
我个人认为编写function(param1, param2, ...)
而不是function (param1, param2, ...)
(注意缺少的空间)很方便,因为myDefinedSomething
(variableaccess)和myDefinedSomething()
(functioncall)之间存在差异。 (你也可以访问功能指针,在这种情况下你省略了paranthese,但在你应该关心它之前你会有一些问题)。
正如评论中所述,尝试缩进代码使其更具可读性,请考虑:
for(int i=1,i<10; i++){
if(i%3) {
if(flag){
cout<<"a";
}else{
cout<<"b";
}
}
与
for(int i=1,i<10; i++){
if(i%3) {
if(flag){
cout<<"a";
}else{
cout<<"b";
}
}
您在哪一个中首先注意到丢失的}
?
答案 4 :(得分:0)
像Caleb所说,你有两个main()
声明。没有第二个main函数的代码编译得很好:
#include <iostream>
#include <iomanip>
int main()
{
double a;
double b;
double c;
a = (7.1);
b = (8.3);
c = (2.2);
std::cout << std::fixed << std::setprecision(1) << std::endl;
std::cout << " " << a << "\n" << std::endl;
std::cout << "* " << b << "\n" << std::endl;
std::cout << "- " << c << "\n" << std::endl;
std::cout << "------" << std::endl;
std::cout << std::setprecision(2) << (a * b) - c << "\n" << std::endl;
return 0;
}
如果您希望将其作为单独的函数,则可以将其重命名为其他内容,例如int calculator()
。