-3

こんにちは私はプログラムを持つためにこのコードを書きました、100未満のランダムな整数を使用している間=>関数を分割し、qoutientと剰余を返し、それらを出力に出力しますが、私は動作しないようですどの部分が間違っているか助けてください。

    #include <cstdlib>
#include <iostream>
#include <ctime>
using namespace std;

using namespace std;
 int division(int& remainder,int qoutient)
{ 
int dividant;
int divisor;
    int quotient=dividant/divisor;      
   int remainder=dividant%divisor;
}

int main()
{
    int dividant =(rand()%99);
    int divisor =(rand()%99);
    int qoutient;
    int remainder_result;
    srand(time(NULL));
    do{qoutient=division(dividant,divisor);
    cout<<"this is q:"<<qoutient<<endl;
    cout<<"remainder"<<remainder_result<<endl;}
    while(dividant>divisor);


    }
4

3 に答える 3

2
  • 除算関数は変数を使用dividentdivisor、mainで宣言されていますが、これは関数の範囲外であり、エラーが発生します。これらの変数を使用するには、パラメーターを使用してこれらを関数に渡す必要があります。
  • また、除算関数をvoidとして宣言し、何も返さないが、dowhileループのステートメントとして使用します。関数に値を返すようにするには、voidを返したいタイプに置き換える必要があります。これintでは、関数の最後に値を返すことができます。
  • srand(time(NULL))は最初のrand関数の後に配置されます。つまり、rand関数は、randがまだシードされていないのと同じ値を返し、その後randをシードします。srand(time(NULL))電話をかける前にrand()電話をかける必要があります

私はあなたがc++の概念についてもっと読むことをお勧めします、あなたはいくつかのかなり厄介なコーディング技術と一緒にこのプログラムで多くの権利を持っていません。

于 2012-12-11T01:21:55.663 に答える
0

コンパイルエラーがあります。除算関数は、宣言されていない変数を参照します。これらの変数をパラメーター化するか、除算関数を変更する必要があります。いずれにせよ、関数はmainのスコープで宣言された変数にアクセスできません。

IDEOneのコンパイルエラー/警告リストは次のとおりです。

prog.cpp: In function ‘void division(int&, int)’:
prog.cpp:11: error: ‘dividant’ was not declared in this scope
prog.cpp:11: error: ‘divisor’ was not declared in this scope
prog.cpp:11: warning: unused variable ‘quotient’
prog.cpp: In function ‘int main()’:
prog.cpp:23: error: void value not ignored as it ought to be
prog.cpp:25: error: ‘remainder’ was not declared in this scope
prog.cpp:28: error: expected `;' before ‘}’ token
prog.cpp:20: warning: unused variable ‘remainder_result’

これらのエラーを修正したら、どうなるかをお知らせください。警告はコード内の他の問題を示している可能性があるため、警告にも注意することをお勧めします。

于 2012-12-11T01:21:41.840 に答える
0

コードにかなりの問題があったので、あなたがしようとしていることを誤解したかもしれません. これが私の理解に基づいた修正コードです。出力を自由に変更して、完全な操作のデータを表示するようにしたので、結果を確認できます。

#include <cstdlib>
#include <iostream>
#include <ctime>
using namespace std;

void division(int dividend, int divisor, int& quotient, int& remainder)
{ 
    quotient = dividend / divisor;      
    remainder = dividend % divisor;
}

int main()
{
    srand(time(NULL));    
    int dividend = rand() % 99;
    int divisor = rand() % 99;
    int quotient, remainder;
    division(dividend, divisor, quotient, remainder);
    cout << dividend << "/" << divisor << " = " << quotient << " remainder: " << remainder << endl;
    return 0;
}
于 2012-12-11T01:46:05.147 に答える