这是我写的程序,不管输入的数是正数还是负数,在for循环的时候都将其转换为正数去考虑,然后最后再去判断一下符号问题,这是我写的程序,仅供参考一下!
# include <stdio.h>
# include <stdlib.h>
int main()
{
int a , b ;
int i , j , x , y ;
scanf("%d%d" , &a , &b) ;
if(b == 0)
{
printf("输入有误,除数不能够为0\n") ;
exit(EXIT_FAILURE) ;
}
x = a ;
y = b ;
if(b < 0)
b = -b ;
if(a < 0)
a = -a ;
for(i = 0 ; i <= a ; i++)
for(j = 0 ; j < b ; j++)
if(b * i + j == a)
goto loop ;
loop:
if(x * y < 0)
i = -i
; //商的符号是根据被除数与除数的符号来判断的!
if(j * x < 0)
j = - j
; //余数的符号当然要和被除数的符号要一样了呀!
printf("商是:%d\n" , i) ;
printf("余数是:%d\n" , j) ;
return 0 ;
}