问题描述
- C语言 如何实现用减法代替除法的运算并且有余数的时候显示余数
- 比如10/3=3。。。。1
运算过程为10-3=7
7-3=4
4-3=1
10 和 3 为变数。
应该用if while 句型还是 do。。。while?或者说for?
解决方案
int main(){int x = 18;int y = 5;int i;for (i = 0; x >= 0; i++ x -= y);printf(""%d ... %d"" i - 1 y + x);}
解决方案二:
都可以
解决方案三:
int main(){int x = 18;int y = 5;int i = 0;while (x >= 0) { i++; x -= y; }printf(""%d ... %d"" i - 1 y + x);}
解决方案四:
int main(){int x = 10;int y = 3;int i = 0;do { i++; x -= y; } while (x >= 0);printf(""%d ... %d"" i - 1 y + x);}
解决方案五:
//有比较运算,先比较后做减法。
int div(int aint bint *rem){
///这里只考虑 同号相除
int c=0;
while(a >= b){
a-=b;++c;
}
*rem=a;
return c;
}
///2)无比较运算,只能知道结果正 负 0 ;即只能跟0 比较 ;例如实现大数运算的时候
int div (int aint bint *rem)
{
///这里只考虑 同号相除
int c=0; if(b==0){*rem =a;return -1;} while((a-=b) >=0){ ++c; } *rem =a? a + b:a; return c;
}
解决方案六:
while (a>=b)
{
c++;
a -= b;
}
printf(""商=%d余数=%d"" c a);
getchar();
用十来万语句简单点,为了以后能更好的理解for建议还是用for语句,只要是做编程的for在最重的
解决方案七:
循环语句都可以相互转换的,你练手就都写一遍了,给你个while的小例子:
int main()
{
int a = 10 b = 3 c = 0;
while (a>=b){ c++; a -= b;}printf(""商=%d余数=%d"" c a);getchar();
}
解决方案八:
其实你说的三种做法,代码量都差不多的,不用纠结这些。 主要是要有好思路。
时间: 2024-09-13 01:28:29