| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 427 人关注过本帖
标题:有关数的类型变换
只看楼主 加入收藏
gggcen
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2007-3-29
收藏
 问题点数:0 回复次数:3 
有关数的类型变换

题目为:∏/2=2/1*2/3*4/3*4/5*6/5*6/7....前100项之积计算∏的值.
#include <stdio.h>
void main()
{

int i;float sum,sum1=1,sum2=0;
for (i=2;i<=100;i=i+2)
{
sum=1;
sum=i/(i-1)*i/(i+1);                  //这里不知道应该怎样
sum1*=sum;
}
sum2=sum1*2;
printf ("the is %f\n",sum2);
}

运行的结果是0.000000
修改为:
#include <stdio.h>
void main()
{

int i;float sum,sum1=1,sum2=0;
for (i=2;i<=100;i=i+2)
{
sum=1;
sum=(float)(i*i)/((i-1)*(i+1));
sum1*=sum;
}
sum2=sum1*2;
printf ("the is %f\n",sum2);
}
结果就为3.126079
本人是刚刚学的,不知道不同类型的数之间在运行中的转换,请大家指点一下~~~~

搜索更多相关主题的帖子: 类型 
2007-07-26 01:30
anlogo
Rank: 2
等 级:论坛游民
威 望:1
帖 子:293
专家分:20
注 册:2007-7-20
收藏
得分:0 
/ * 等运算符是自左向右运算
假设 i=10 (i 为int类型),请看以下运算:
i/(i-1)=10/9=1
1*i/(i+1)=10/11=0
这就是使用整型运算的结果~~
而float(i*i)/((i-1)*(i+1) 在i*i运算后就把(i*i)强制转换为float
所以结果是float类型
2007-07-26 06:31
gggcen
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2007-3-29
收藏
得分:0 
谢谢
2007-07-26 08:30
open1232008
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2007-7-26
收藏
得分:0 
谢了.....

2007-07-26 08:43
快速回复:有关数的类型变换
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.078534 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved