When using C++, how do you find the REMAINDER of two numbers and store it in an integer.

I think the answer is:

**X % Y = Int Z;** :idea:

Please help.

Thanks :lol: ,

C++

Jump to Postlike you said, "int z = x % y" gives the remainder of x / y int z. Just turn your expression around.

Jump to PostI think the answer is:

void divide(int numerator,int denominator,int* quotient, int* remainder){

*(quotient=&numerator/&denominator);

*(remainder=&denominator%&numerator);

}Divide

values, notmemory locations:`#include <stdio.h> void divide(int numerator, int denominator, int* quotient, int* remainder) { *quotient = numerator / denominator; *remainder = denominator % numerator; } int main(void) { int …`

Chainsaw
12
Posting Pro in Training

like you said, "int z = x % y" gives the remainder of x / y int z. Just turn your expression around.

Ghost
0
Posting Whiz

The compiler said your code was incorrect :twisted: , so I thought i would give you the orriginal question.

Here it is:

Write the definition of a function divide that takes four argumentsª and returns no valueª. The first two argumentsª are of typeª intª. The last two argumentsª argumentsª are pointers to intª and are set by the function to the quotient and remainder of dividing the first argumentª by the second argumentª. The function does not return a valueª.

The function can be used as follows:

intª numerator=42, denominator=5, quotient, remainder; divide(numerator,denominator,"ient,&remainder); /* quotient is now 8 */ /* remainder is now 2 */

I think the answer is:

void divide(int numerator,int denominator,int* quotient, int* remainder){

*(quotient=&numerator/&denominator);

*(remainder=&denominator%&numerator);

}

But, when I run i through the compiler, these three messages appear:

In function `void divide(int, int, int *, int *)':,

invalid operands `int *' and `int *' to binary `operator /',

invalid operands `int *' and `int *' to binary `operator %'

Please help

C++

Dave Sinkula
2,398
long time no c
Team Colleague

I think the answer is:

void divide(int numerator,int denominator,int* quotient, int* remainder){

*(quotient=&numerator/&denominator);

*(remainder=&denominator%&numerator);

}

Divide *values*, not *memory locations*:

```
#include <stdio.h>
void divide(int numerator, int denominator, int* quotient, int* remainder)
{
*quotient = numerator / denominator;
*remainder = denominator % numerator;
}
int main(void)
{
int numerator=42, denominator=5, quotient, remainder;
divide(numerator,denominator,"ient,&remainder);
printf("numerator = %d\n", numerator);
printf("denominator = %d\n", denominator);
printf("quotient = %d\n", quotient);
printf("remainder = %d\n", remainder);
return 0;
}
/* my output
numerator = 42
denominator = 5
quotient = 8
remainder = 5
*/
```

Whitespace makes code more easily readable.

Ghost
0
Posting Whiz

You're correct.

Thank you SO much,

C++

wangchung
0
Newbie Poster

While this post is very old, there is a mistake:

*remainder = denominator % numerator;

should be

*remainder = numerator % denominator;

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.