| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1441 人关注过本帖
标题:请教一个代码
只看楼主 加入收藏
屋顶
Rank: 1
等 级:新手上路
帖 子:174
专家分:7
注 册:2016-2-27
结帖率:92.86%
收藏
已结贴  问题点数:8 回复次数:16 
请教一个代码
题目:
图片附件: 游客没有浏览图片的权限,请 登录注册

我自己编的第二个序列求和的代码,可是运行没结果,想请教一下是哪里出了问题
#include<stdio.h>
main()
{
    double i,sum=0;
    int k=3,m;
    scanf("%d",&m);
    for(i=1.0;k<m+3;k++,i++)
        {  
           for(;k%2==0;)
            sum-=1/i;
          for(;k%2==1;)
           sum+=1/i;                     
            }        
    printf("sum=%.2lf",sum);
    }
搜索更多相关主题的帖子: double 
2016-03-20 18:48
a120750
Rank: 4
等 级:业余侠客
威 望:1
帖 子:63
专家分:243
注 册:2016-3-13
收藏
得分:4 
#include<stdio.h>
main()
{
    double i,sum=0;
    int k=3,m;
    scanf("%d",&m);
    for(i=1.0;k<m+3;k++,i++)
        {  
           for(;k%2==0;)
            sum-=1/i;
          for(;k%2==1;)        //此处for已死循环,因为一层for的时候k=3;而执行完这句for时,k的值没有变化。还是3,所以条件成立。k%2==1,所以无限循环
           sum+=1/i;                     
            }        
    printf("sum=%.2lf",sum);
    }
2016-03-20 19:26
屋顶
Rank: 1
等 级:新手上路
帖 子:174
专家分:7
注 册:2016-2-27
收藏
得分:0 
回复 2楼 a120750
谢谢,我改成这样了:
#include<stdio.h>
main()
{
    double i,sum=0;
    int k=3,m;
    scanf("%d",&m);
    for(i=1.0;k<m+3;i++)
        {  
           for(;k%2==0;k++)
            sum-=1/i;
           for(;k%2==1;k++)
            sum+=1/i;                     
            }        
    printf("sum=%.2lf",sum);
    }
可是运行结果总是1.00,不管输入什么值都是1.00
2016-03-20 19:40
a120750
Rank: 4
等 级:业余侠客
威 望:1
帖 子:63
专家分:243
注 册:2016-3-13
收藏
得分:0 
回复 3楼 屋顶
for(i=1.0;k<m+3;i++)                                //k=4
        {  
           for(;k%2==0;k++)                            //当k=4执行sum-=1/i。。。然后k++      k=5
            sum-=1/i;
           for(;k%2==1;k++)                        //执行sum+=1/i。。那执行完一轮循环 。。k=4            当k=5,又执行sum+=1/i。。
            sum+=1/i;                     
            }        



反复循环。。
2016-03-20 20:04
屋顶
Rank: 1
等 级:新手上路
帖 子:174
专家分:7
注 册:2016-2-27
收藏
得分:0 
回复 4楼 a120750
那是不是就不能用for循环解决了
2016-03-20 20:08
a120750
Rank: 4
等 级:业余侠客
威 望:1
帖 子:63
专家分:243
注 册:2016-3-13
收藏
得分:0 
回复 5楼 屋顶
可以的。只是看你怎么用而已,
2016-03-20 20:10
jklqwe111
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:35
帖 子:336
专家分:1135
注 册:2014-4-13
收藏
得分:4 
这代码不可思议,楼主请想,计算到n次需要n次循环,每一次或加或减1/i,就是两个分支,哪来那么多循环
2016-03-20 20:11
屋顶
Rank: 1
等 级:新手上路
帖 子:174
专家分:7
注 册:2016-2-27
收藏
得分:0 
回复 6楼 a120750
那要想在我编的代码上改改,应该怎么改呢,谢谢
2016-03-20 20:26
屋顶
Rank: 1
等 级:新手上路
帖 子:174
专家分:7
注 册:2016-2-27
收藏
得分:0 
回复 7楼 jklqwe111
我还没有看到分支的知识,所以编的时候也没有分支的概念,
2016-03-20 20:27
a120750
Rank: 4
等 级:业余侠客
威 望:1
帖 子:63
专家分:243
注 册:2016-3-13
收藏
得分:0 
回复 8楼 屋顶
两个for改为
if(k%2==0)
{

}
else
{

}
2016-03-20 20:28
快速回复:请教一个代码
数据加载中...
 
   



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

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