c语言中怎么使一个数除以另一个数的余数恒为非负数我写的一个如下#includeint main(){ int a,b; scanf("%d %d",&a,&b); printf("%d",a%b); return 0;}但当我输入的ab为-1 2 时 输出的数就是-1.这是不符

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/06 00:21:47

c语言中怎么使一个数除以另一个数的余数恒为非负数我写的一个如下#includeint main(){ int a,b; scanf("%d %d",&a,&b); printf("%d",a%b); return 0;}但当我输入的ab为-1 2 时 输出的数就是-1.这是不符
c语言中怎么使一个数除以另一个数的余数恒为非负数
我写的一个如下
#include
int main()
{
int a,b;
scanf("%d %d",&a,&b);
printf("%d",a%b);
return 0;
}
但当我输入的ab为-1 2 时 输出的数就是-1.这是不符合作业要求的
我还写了一个逻辑上好像没问题,但还是不可以
#include
int main()
{
int a,b,c,d;
scanf("%d %d",&a,&b);
if(a0);
printf("%d",d);
}
if(a>0);
{
printf("%d",a%b);
}
return 0;
}

c语言中怎么使一个数除以另一个数的余数恒为非负数我写的一个如下#includeint main(){ int a,b; scanf("%d %d",&a,&b); printf("%d",a%b); return 0;}但当我输入的ab为-1 2 时 输出的数就是-1.这是不符
a%b中输出结果的正负只与a也就是分子有关,所以当a是负数时你把它转成正的就可以了
#include
int main()
{
int a,b;
scanf("%d%d",&a,&b);
printf("%d",a>0?(a%b):(-a%b));
return 0;
}

第一个程序改成printf("%d",abs(a%b));

abs再#include里面