#include <stdlib.h>
#include <stdio.h>
void mydiv(int dividend, int divisor, int* quotient, int* remainder)
{
*quotient = dividend / divisor;
*remainder = dividend - *quotient * divisor;
}
int testData[][2] =
{
{ +5, +3 },
{ +5, -3 },
{ -5, +3 },
{ -5, -3 },
};
int main(void)
{
unsigned i;
for (i = 0; i < sizeof(testData)/sizeof(testData[0]); i++)
{
div_t res1, res2;
res1
= div(testData
[i
][0], testData
[i
][1]); mydiv(testData[i][0], testData[i][1], &res2.quot, &res2.rem);
printf("%+d/%+d = %+d:%+d %c= %+d:%+d\n", testData[i][0], testData[i][1],
res1.quot, res1.rem,
"!="[res1.quot == res2.quot && res1.rem == res2.rem],
res2.quot, res2.rem);
}
return 0;
}
I2luY2x1ZGUgPHN0ZGxpYi5oPgojaW5jbHVkZSA8c3RkaW8uaD4KCnZvaWQgbXlkaXYoaW50IGRpdmlkZW5kLCBpbnQgZGl2aXNvciwgaW50KiBxdW90aWVudCwgaW50KiByZW1haW5kZXIpCnsKICAqcXVvdGllbnQgPSBkaXZpZGVuZCAvIGRpdmlzb3I7CiAgKnJlbWFpbmRlciA9IGRpdmlkZW5kIC0gKnF1b3RpZW50ICogZGl2aXNvcjsKfQoKaW50IHRlc3REYXRhW11bMl0gPQp7CiAgeyArNSwgKzMgfSwKICB7ICs1LCAtMyB9LAogIHsgLTUsICszIH0sCiAgeyAtNSwgLTMgfSwKfTsKCmludCBtYWluKHZvaWQpCnsKICB1bnNpZ25lZCBpOwogIGZvciAoaSA9IDA7IGkgPCBzaXplb2YodGVzdERhdGEpL3NpemVvZih0ZXN0RGF0YVswXSk7IGkrKykKICB7CiAgICBkaXZfdCByZXMxLCByZXMyOwogICAgcmVzMSA9IGRpdih0ZXN0RGF0YVtpXVswXSwgdGVzdERhdGFbaV1bMV0pOwogICAgbXlkaXYodGVzdERhdGFbaV1bMF0sIHRlc3REYXRhW2ldWzFdLCAmcmVzMi5xdW90LCAmcmVzMi5yZW0pOwogICAgcHJpbnRmKCIlK2QvJStkID0gJStkOiUrZCAlYz0gJStkOiUrZFxuIiwKICAgICAgICAgICB0ZXN0RGF0YVtpXVswXSwgdGVzdERhdGFbaV1bMV0sCiAgICAgICAgICAgcmVzMS5xdW90LCByZXMxLnJlbSwKICAgICAgICAgICAiIT0iW3JlczEucXVvdCA9PSByZXMyLnF1b3QgJiYgcmVzMS5yZW0gPT0gcmVzMi5yZW1dLAogICAgICAgICAgIHJlczIucXVvdCwgcmVzMi5yZW0pOwogIH0KICByZXR1cm4gMDsKfQo=