-1
#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 '{'

これらのエラーを修正するにはどうすればよいですか?

4

3 に答える 3

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;
}

^^^^

両方の関数に同じ名前のシンボルがあるため、中括弧がないと、シンボル名が複数回使用され、1 つの定義ルールに違反し、再定義エラーが発生します。

また、@ Ed.S がコメントで正しく指摘していることにも注意してください。

また、プログラム ロジックで考慮したい型変換の警告にも注意してください。

于 2012-09-22T06:04:37.880 に答える
0

関数の}後がありません。関係ありませんが、何度もint calculate電話する必要はありません。fixedsetprecision

于 2012-09-22T06:06:56.677 に答える
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;
}
于 2012-09-22T06:07:09.087 に答える