| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 460 人关注过本帖
标题:这里那儿错了
只看楼主 加入收藏
Crysis2012
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2010-4-19
结帖率:0
收藏
已结贴  问题点数:20 回复次数:6 
这里那儿错了
输入正整数n,当精确度分别取0.1,0.01,0.001.。。。。。时,计算并输出下列算式的值,s=1+1/2!+1/3!+1/4!.........
#include<stdio.h>
#include<math.h>
int x;
double y;
double cal(int n)
{
    double t=0,m,z;
    int i,j,s=1;
    {
     while((int)m%10!=0){
       i=1;
        for(j=1;j<=i;j++)
          s=j*s;
          t=1/s+t;
          z=1/s;
          s=1;
          i++;
          m=t*pow(10,n+1);      
                      }
                       t=t-z;           
                      return t;
}
void main()
{
     printf("请输入精确度x=\n");
     scanf("%d",&x);
     y=cal(x);
     printf("%.%df\n",n,y);
}
搜索更多相关主题的帖子: include return double 正整数 
2010-04-19 20:10
qq493190279
Rank: 2
来 自:湖北黄冈
等 级:论坛游民
帖 子:11
专家分:12
注 册:2010-3-14
收藏
得分:10 
printf("%.%df\n",n,y);
printf("%d%f\n",n,y);
2010-04-19 20:30
qq493190279
Rank: 2
来 自:湖北黄冈
等 级:论坛游民
帖 子:11
专家分:12
注 册:2010-3-14
收藏
得分:0 
好像不至这一个错...
2010-04-19 20:33
b001lcp
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:45
专家分:157
注 册:2010-3-17
收藏
得分:10 
#include<stdio.h>
#include<math.h>
int x;
double y;
double cal(int n)
{
    double t=0,m,z;
    int i,j,s=1;
    {       //这个大括符多余的
     while((int)m%10!=0){
       i=1;
        for(j=1;j<=i;j++) // 由于前面的 i=1,for循环只会执行一次,请吧i赋值成自己需要的值,或者用scanf从键盘获取
          s=j*s;
          t=1/s+t;
          z=1/s;
          s=1;
          i++;
          m=t*pow(10,n+1);      
                      }
                       t=t-z;           
                      return t;
}
void main()
{
     printf("请输入精确度x=\n");
     scanf("%d",&x);
     y=cal(x);
     printf("%.%df\n",n,y);  //格式有误,应该是  printf("%d%f\n",n,y);
}
2010-04-19 21:28
Crysis2012
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2010-4-19
收藏
得分:0 
printf("%.%df\n",n,y);
那怎么让他小数保留n位
2010-04-19 21:30
Crysis2012
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2010-4-19
收藏
得分:0 
那哪位帮我把这题目解下
2010-04-19 21:32
Crysis2012
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2010-4-19
收藏
得分:0 
#include<stdio.h>
#include<math.h>
int x;
double y;
double cal(int n)
{
    double t=0,m,z;
    int i,j,s=1;
      {
        for(i=1;(int)m%10!=0;i++)
        for(j=1;j<=i;j++)
          s=j*s;
          z=1/s;
          t=z+t;
          s=1;
           m=t*pow(10,n+1);      
      }
                       t=t-z;           
                      return t;
}
void main()
{
     printf("请输入精确度x=\n");
     scanf("%d",&x);
     y=cal(x);
     printf("%f\n",y);
}
为什么运行结果总是0.000000,怎么样让他 printf("%f\n",y);的结果精确值是保留n位小数

2010-04-19 21:47
快速回复:这里那儿错了
数据加载中...
 
   



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

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