C语言 如何实现用减法代替除法的运算并且有余数的时候显示余数

问题描述

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

C语言 如何实现用减法代替除法的运算并且有余数的时候显示余数的相关文章

C语言无符号长整型的左移运算

问题描述 C语言无符号长整型的左移运算 C语言(VC6.0)的无符号长整型是如何左移的,当左移的位数超过该数值类型的最大位数是怎么样处理的?求大神解答,不甚感激 解决方案 C语言左移运算符是<<,左移赋值运算符是<<= 左移运算根据您机器的位长,如32位.64位机器把long型数据转换成相应的二进制值.unsigned long不会转换为反码. //给您个例子32位机器 unsigned long lValue = 8L; //这时lValue的二进制制编码是00000000000

C语言 做了一个猜数游戏,如何在3次失败以后显示正确的数字printf应该加在哪里?

问题描述 C语言 做了一个猜数游戏,如何在3次失败以后显示正确的数字printf应该加在哪里? #include #include #include #include int main(){ { printf(""********************************n I want to play a game with youn********************************""); } int c; printf("&quo

(PHP实现)只使用++运算实现加法,减法,乘法,除法

加法 复制代码 代码如下: function jiafa($a,$b) { for($i=0;$i<$b;$i++) { $a++; } return $a; } //echo jiafa(4,2); 减法 复制代码 代码如下: function jianfa($a,$b) { $c=0; while($b!=$a) { $b++; $c++; } echo $c; } // end func //jianfa(10,3); 乘法 复制代码 代码如下: function chengfa($a,$

(PHP实现)只使用++运算实现加法,减法,乘法,除法_php技巧

加法 复制代码 代码如下: function jiafa($a,$b){ for($i=0;$i<$b;$i++) {  $a++; } return $a;}//echo jiafa(4,2); 减法 复制代码 代码如下: function jianfa($a,$b){ $c=0;    while($b!=$a) {  $b++;  $c++; } echo $c;} // end func//jianfa(10,3); 乘法 复制代码 代码如下: function chengfa($a,$

C语言学习教程第八章-枚举、位运算(5)

二.位域的使用位域的使用和结构成员的使用相同,其一般形式为: 位域变量名·位域名 位域允许用各种格式输出.main(){struct bs{unsigned a:1;unsigned b:3;unsigned c:4;} bit,*pbit;bit.a=1;bit.b=7;bit.c=15;printf("%d,%d,%d\n",bit.a,bit.b,bit.c);pbit=&bit;pbit->a=0;pbit->b&=3;pbit->c|=1;p

C语言学习教程第八章-枚举、位运算(4)

位域 有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位.例如在存放一个开关量时,只有0和1 两种状态, 用一位二进位即可.为了节省存储空间,并使处理简便,C语言又提供了一种数据结构,称为"位域"或"位段".所谓"位域"是把一个字节中的二进位划分为几个不同的区域, 并说明每个区域的位数.每个域有一个域名,允许在程序中按域名进行操作. 这样就可以把几个不同的对象用一个字节的二进制位域来表示.一.位域的定义和位域变量的说明位域

C语言学习教程第八章-枚举、位运算(3)

位运算 前面介绍的各种运算都是以字节作为最基本位进行的. 但在很多系统程序中常要求在位(bit)一级进行运算或处理.C语言提供了位运算的功能, 这使得C语言也能像汇编语言一样用来编写系统程序.一.位运算符C语言提供了六种位运算符:& 按位与| 按位或^ 按位异或~ 取反<< 左移>> 右移 1. 按位与运算 按位与运算符"&"是双目运算符.其功能是参与运算的两数各对应的二进位相与.只有对应的两个二进位均为1时,结果位才为1 ,否则为0.参与运算的

C语言学习教程第八章-枚举、位运算(1)

枚举 在实际问题中, 有些变量的取值被限定在一个有限的范围内.例如,一个星期内只有七天,一年只有十二个月, 一个班每周有六门课程等等.如果把这些量说明为整型, 字符型或其它类型显然是不妥当的. 为此,C语言提供了一种称为"枚举"的类型.在"枚举"类型的定义中列举出所有可能的取值, 被说明为该"枚举"类型的变量取值不能超过定义的范围.应该说明的是, 枚举类型是一种基本数据类型,而不是一种构造类型, 因为它不能再分解为任何基本类型. 枚举类型的定义和

C语言中 整数, 浮点, 逻辑, 类型转换和条件运算 总结教程

[C语言的类型] 整数: char, short, int, long, long long 浮点数: float,double,long double 逻辑: bool:通过头文件定义 指针   自定义类型   [类型有什么不同] 类型名称:int,long,double 输入输出时的格式化:%d,%ld,%lf 所表达的数的范围:char < short < int < float < double 内存中所占据的大小:1个字节到16个字节,使用sizeof()得到大小,siz