c语言 a=a/i和a*=1/i区别

如题所述

    如果i是浮点型(a可以是浮点或是整型),a=a/i和a*=1/i ;这两个算式没有区别!

    如果a是浮点型,i是整型,则当i等于1时,两式相同,否则,a=a/i结果为一个小数,而a*=1/i结果为0。因为,1/i是两个整数相除,结果还是整数,当i的绝对值大于1时,1/i结果为0。

    如果a,i都是整型,则两式只有特殊情况下相同:

      i=1时,两式相同,结果为a

      i等于1时,

        |a|<|i|,两式相同,结果为0

        否则,a=a/i  结果非0,   a*=1/i结果为0(原因同2)

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2016-01-11
这要看变量的数据类型是浮点还是整形了。
对于整形数之间相除,结果是取其去余数的商。如1/3=0, 7/2=3等
结论:(1)两个数都为整形时,结果不一样。如int i=3,那么1/i=0. 若a=10,那么a=a/i的结果是a为3,
而a*=1/i的结果是a为0.
(2)i为浮点时,两个表达式结果一样。如float i=3,那么1/i=0.33333.本回答被提问者采纳
第2个回答  2012-09-15
这要看a的数据类型了,a是整形就没区别。不然1/i有可能整除啊。追问

int i;
double s=0,a=1;
for(i=1;i<=n;i++)
{
a=a/i;
s+=a;
}
return s;
在这个里面,两个运行出来的结果不一样呢?!

第3个回答  2012-09-15
两个结果结果不同:比如
a=3,i=2;
a=a/i的结果是:1
而a*=1/i的结果是0吧
第4个回答  2012-09-15
假设a为6,i为3;a/i=2、而a*(1/i)等于多少就看四舍五入了

c语言 a=a\/i和a*=1\/i区别
如果i是浮点型(a可以是浮点或是整型),a=a\/i和a*=1\/i ;这两个算式没有区别!如果a是浮点型,i是整型,则当i等于1时,两式相同,否则,a=a\/i结果为一个小数,而a*=1\/i结果为0。因为,1\/i是两个整数相除,结果还是整数,当i的绝对值大于1时,1\/i结果为0。如果a,i都是整型,则两...

在c语言中1<<i与i<<1的区别是什么
1<<i是把1左移i位,每次左移以为就是乘以2,所以1<<i的结果是1乘以2的i次方 i<<1就是把i左移一位,即i乘以2,假如i=5,最后结果就是5*2=10 至于为什么左移一位是乘以2,这是运算器内部机理,说起来就更多了,计算机做乘法运算的时候不是一个个的相加,而是用移位来实现的。>>这个符号...

c语言里面a[i]=!a[i]是什么意思呢?
如果 a[i]的值非0,则 !a[i] 的值为 0;所以执行 a[i] = !a[i] 后, a[i]的值,不是0就是1,即a[i]被二值化了。

c语言a*=是什么意思
a=i,就是说将i的值赋予*a,使指针a指向的地址中存入i的值。n=*n+1也很好理解,比如指针n指向的地中之前存入的值为5,则上式的意思就等同于*n=5+1,指针n指向的地址中将存入数值6。a++的意思就是a指向的地址向后移一位。比如之前a指向数组b[0]的地址,则之后将指向b。

c语言a>i++和a>++i的区别
第一个先比较a和i,然后i自加1 第二个i先自加,然后比较a和i自加之后的值的大小

*(a+i)与a[i]是一样的地址,为什么?
*(a+i)与a[i]是一样的地址应该是说他们指向的都是同一个内存单元,也就是说*(a+i)指向的值的地址,与a[i]指向的值的地址都是一样的。也就是说他们得到的值是一样的。这里不是说他们得到的是一个内存变量的地址还是内存变量的值,只是说明他们是一样的,得到的值一样,换句话说就是一样的地址。(一样...

C语言里a+=i和a=+i有什么区别
前者先计算a+i 再将其值赋给a,后者是a=++i吧?如果是的话就是先把 i 的值赋给 a 再使 i+1

C语言中,一个等号和两个等号的区别是什么?
表示不相等。3、C语言中 1个等号和2个等号的区别为:= 表示把一个值赋值给变量, == 表示比较两个变量是否相等 示例代码为:int a = 1, b = 3;int c = a; \/\/ 给变量c赋值,结果为:c = 1 int d = a == b; \/\/ a和b比较是否相等,不相等的话返回0,结果为:d = 0 ...

c语言书上说a(i)和*(a+i)等价,我觉得不对啊
c语言 语句中,方括号 不是标点符号,而是 运算符.c语言 语句中,有恒等式: a[i] = *(a+i)a[i][j] 等于 (a[i])[j] 套恒等式公式,化成 ( *(a+i) )[j], 再化成 * (*(a+i) + j);类似地 a[j][i] 等于 (a[j])[i],套恒等式公式,化成 ( *(a+j)...

C语言问题:a\/=a=a为什么等于0啊?(原来a等于12)
+号的运算符优先级比\/=高,所以程序 先计算a+a 式子为a\/=24,12除以24整数为0,所以答案为0,如果式子换成a=a%24,那么结果是12 \/表示结果取整数部分,%表示结果取余数部分

相似回答