除法函数随机整数需要商和余数打印出来

时间:2012-12-11 01:17:36

标签: c++ function

我写这段代码有程序,同时使用小于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);


    }

3 个答案:

答案 0 :(得分:2)

  • 你的除法函数使用main中声明的变量dividentdivisor,这超出了函数的范围并将导致错误。为了使用这些变量,您需要使用参数将它们传递给函数。
  • 你还将你的除法函数声明为void,不返回任何内容,但在do while循环中使用它是一个语句。为了让函数返回一个值,你需要将void替换为你想要返回的类型,这可以是int,并在函数末尾返回一个值。
  • srand(time(NULL))放在初始rand函数之后,这意味着rand函数将返回与rand isnt seded相同的值,然后是种子rand。您需要在srand(time(NULL))来电
  • 之前放置rand()

我建议你阅读更多有关c ++概念的内容,你在这个程序中没有太多权利以及一些非常混乱的编码技术。

答案 1 :(得分: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’

修复这些错误后,请告诉我们该怎么做。我还建议您注意警告,因为它们可能表示代码中存在其他问题。

答案 2 :(得分: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;
}