| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1824 人关注过本帖
标题:自学C语言小白求解疑。求高手帮帮忙!
只看楼主 加入收藏
琳檬
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2020-2-21
结帖率:0
收藏
已结贴  问题点数:20 回复次数:7 
自学C语言小白求解疑。求高手帮帮忙!
程序代码:
#include <stdio.h>
void main()
{    
    double t;
    int i=1,n=1;
    for(i=1;i<=n;i++);
    {
    t=1.0/i;
    }
    printf("t=%f\n",t);
}
    

为什么t=0.5?
程序代码:
#include <stdio.h>
void main()
{    
    double t;
    int i=1,n=1;
    for(i=1;i<=n;i++);
    {
    t=1/i;
    }
    printf("t=%f\n",t);
}
    

这样的话t=0?
程序代码:
#include <stdio.h>
double  fun(int  n)
{
    double t,s;
    int i;
    t=1;
    for(i=1;i<=n;i++);
    {
        t*=1/i;
        s+=t;    
    }
    return s;
}
main()
{  int  n;     double  s;
   printf("Input n:  ");  scanf("%d",&n);
   s=fun(n);
   printf("s=%f\n",s);
}

图片附件: 游客没有浏览图片的权限,请 登录注册
我是在做这个函数,这样编写有什么问题吗?
搜索更多相关主题的帖子: double printf 自学 int i++ 
2020-02-21 18:15
forever74
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:CC
等 级:版主
威 望:58
帖 子:1705
专家分:4345
注 册:2007-12-27
收藏
得分:5 
for行最后总是多余分号

对宇宙最严谨的描述应该就是宇宙其实是不严谨的
2020-02-21 18:26
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10609
专家分:43210
注 册:2014-5-20
收藏
得分:5 
    //for(i=1;i<=n;i++);
    for(i=1;i<=n;i++)

    //printf("t=%f\n",t);   
    printf("t=%lf\n",t);
2020-02-21 18:36
琳檬
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2020-2-21
收藏
得分:0 
回复 2楼 forever74
程序代码:
#include <stdio.h>
void main()
{    
    double t,s;
    int i,n=3;
    t=1;
    for(i=1;i<=n;i++)
    {
        t*=1/i;
        s+=t;    
    }
    printf("%f",s);
}

这样的话,依然算不出来,并且t=0
2020-02-21 18:37
琳檬
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2020-2-21
收藏
得分:0 
回复 3楼 吹水佬
程序代码:
#include <stdio.h>
void main()
{    
    double t,s;
    int i,n=3;
    t=1;
    for(i=1;i<=n;i++)
    {
        t*=1/i;
        s+=t;    
    }
    printf("l%f",s);
}

可是我这样依旧得不出正确的计算答案呀
2020-02-21 18:38
lenderfoxafs
Rank: 1
等 级:新手上路
帖 子:1
专家分:5
注 册:2020-2-21
收藏
得分:5 
前面两个不说了,说第三个。逻辑上没问题,关键是整数除法会截断,即1/i(当i>1)会始终为0,所以结果不对。解决方案:把i设置为double类型或者对表达式强制转换(double)1/i;
2020-02-21 19:33
叶纤
Rank: 8Rank: 8
等 级:禁止访问
威 望:1
帖 子:658
专家分:848
注 册:2019-11-22
收藏
得分:5 
程序代码:
#include <stdio.h>
double a(int n)
{ 
double e;
  if(n==0)
  {return 1;
  }
  else
  e=a(n-1)*n;   
    }
int main()
{int n=0,i=0;
double sum=0,d=0;
scanf("%d",&n);
for(i=0;i<n;++i)
   { 
    d=a(i);
   sum+=1/d; 
   }

 printf("%lf",sum);
    }


把学习时间浪费在混坛上是傻瓜行为,更何况自己的水平连一两都没到。
2020-02-21 21:40
叶纤
Rank: 8Rank: 8
等 级:禁止访问
威 望:1
帖 子:658
专家分:848
注 册:2019-11-22
收藏
得分:0 
!这个符号在数学里是乘阶的意思,你的思路是完全错了,再怎么改也是得不到正确答案

把学习时间浪费在混坛上是傻瓜行为,更何况自己的水平连一两都没到。
2020-02-21 22:08
快速回复:自学C语言小白求解疑。求高手帮帮忙!
数据加载中...
 
   



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

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