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);
}

都可以

循环语句都可以相互转换的,你练手就都写一遍了,给你个while的小例子:
int main()
{
int a = 10, b = 3, c = 0;

while (a>=b)
{
    c++;
    a -= b;
}
printf("商=%d,余数=%d", c, a);
getchar();

}

其实你说的三种做法,代码量都差不多的,不用纠结这些。 主要是要有好思路。

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 a,int b,int *rem){
///这里只考虑 同号相除
int c=0;
while(a >= b){
a-=b;++c;
}
*rem=a;
return c;
}

///2)无比较运算,只能知道结果正 负 0 ;即只能跟0 比较 ;例如实现大数运算的时候
int div (int a,int b,int *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在最重的