2

誰かが私のために修正されたコード全体を書いてくれませんか? 私は自分自身を変更しましたが、まだエラーがあります。関数を使用して、印刷メインに呼び出したい #include #include #include 名前空間 std を使用します。

int addition(int a=(rand()%99),int b=(rand()%99) {
    int r;
    r=a+b;
    return r;
}

int main() {
   int print, a, b;
 print = addition(a, b);
 cout << "this is result of addition" << print;
} 
4

3 に答える 3

3

ここには 2 つの問題があります。

srandまず、ランダム シードを設定するために必要な を呼び出さないでください(通常は を介し​​てsrand(time(nullptr))。

第二に、行print= int addition(int a,int b);が正しく書かれていません。デフォルトの引数を使用すると仮定するとprint = addition();、関数を宣言するのではなく呼び出すので、それは である必要があります。

これにより、メイン関数は次のようになります。

int main() {
    srand(time(nullptr));
    int print;
    print= int addition();
    cout<<"this is result of addition"<<print;
    return 0;
} 

編集:これは、関数にランダムなデフォルト引数があるという動作が実際に必要であると想定しています。これ自体が悪い設計上の決定のように思われ、おそらく呼び出し元によって生成された乱数を送信する方がよいでしょう。これにより、結果の関数が作成されます。

int main() {
    srand(time(nullptr));
    int a = rand()%99, b = rand()%99;
    int print;
    print= int addition(a, b);
    cout<<"this is result of addition"<<print;
    return 0;
} 

rand()%99 は [0,98] の範囲の値を返すことにも注意してください。

于 2012-12-06T08:17:05.323 に答える
0

この行:

print = int addition(int a, int b);

ナンセンスです。あなたはおそらく望んでいた:

print = addition();
于 2012-12-06T08:17:00.783 に答える
0

いくつかの構文エラーがあります..主な変更点:

 int print, a, b;
 std::srand(std::time(0));
 print = addition(a, b);
 cout << "this is result of addition" << print;

編集

いずれにせよ、'a' および 'b' 変数の宣言は、コードで使用しないため削除できます。このように、パラメータなしで加算を呼び出す必要があります。

 print = addition();
于 2012-12-06T08:18:40.287 に答える