c语言除法运算

(1)#include<stdio.h>voidmain(){floatm;m=1/2;printf("%f",m);}(2)#include<stdio.h>voidm... (1)
#include<stdio.h>

void main()

{

float m;

m=1/2;

printf("%f",m);

}
(2)
#include<stdio.h>

void main()

{

float m,n,z;

m=1;

n=2;

z=m/n;

printf("%f",z);

}
为什么第一种得到0.00000 第二种得到0.50000 而且貌似只有除法运算有这个问题。。求助
展开
 我来答
帐号已注销
2020-12-04 · TA获得超过77万个赞
知道小有建树答主
回答量:4168
采纳率:93%
帮助的人:141万
展开全部

用%这个算符,意思是取余数

比如:

a=2;

b=3;

那么b%a的结果就是3除以2的余数,结果是1;

参考程序段:

main()

{

int i,n;

printf("input your number: \n");

scanf("%d",&n);

for(i=1;i<n;i++)

{

if(n%i) continue;

printf("%d ",i);

}

}

扩展资料:

余数有如下一些重要性质(a,b,c 均为自然数):

(1)余数和除数的差的绝对值要小于除数的绝对值(适用于实数域);

(2)被除数 = 除数 × 商 + 余数;

除数=(被除数 - 余数)÷ 商;

商=(被除数 - 余数)÷除数;

余数=被除数 - 除数 × 商。

参考资料来源:百度百科-余数

sqiuzhao
推荐于2017-10-14 · TA获得超过1347个赞
知道小有建树答主
回答量:967
采纳率:0%
帮助的人:404万
展开全部
(1)计算的时候,c语言中,会按一定顺序将类型转换后再计算。但是结果是保留自身值,之后如果赋值给其他一个变量,那么这个变量会将得到的值再转换成与自身类型相符的值。题中, m=1/2,因为等式右边计算的是两个整形变量相除(类型不需要转换),根据c语言的“/”运行可以知道,这个是取整计算,结果是0,所以m=0
(2)因为m ,n都是浮点型,所以,“/”计算是求浮点类型的值,也就是和我们平常数学里的除号运算是一样的,也就是1/2=0.5,或者也可以写成1.0/2.0=0.5,所以,z=0.5
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yy_galois
2013-10-09 · TA获得超过855个赞
知道小有建树答主
回答量:429
采纳率:100%
帮助的人:139万
展开全部
第一种:

float m;

m=1/2;

1,为整数,2为整数, 1/2 = 0 ,整数除整数,按照C语言规定,只保留整数位

m = (float)0 = 0.000000 , 将整数0转化为浮点数0.000000

第二种
m,n 已经是float, 所以是float类型的除法,当然是 0.5
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tattackor
推荐于2017-10-05 · TA获得超过3.5万个赞
知道大有可为答主
回答量:5083
采纳率:94%
帮助的人:799万
展开全部
1、C语言中和除法相关的运算符有两个"/"整除运算符和"%"取余运算符。
2、整除就是求商,取余就是求余数,这是两者最本质的区别,需要注意的是在C语言%取余运算符只能操作整型数据对象。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
质跃
2013-10-09 · 超过10用户采纳过TA的回答
知道答主
回答量:28
采纳率:0%
帮助的人:30.2万
展开全部
因为第一种,默认1和2是整数,是按照整数运算的,得到的也是整数,后来整数转化为float类型时即为0.00,即1/2=0 1%2=1的道理 而第二种中申明了为float类型的,就按照float算数运算,相当于得到的也是float类型。说到底就是第一种除法运算得到的是整数,后来转化为float类型赋值给m,第二种除法运算得到的是float类型,不需要转化
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式