| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3142 人关注过本帖
标题:在acm上我的这个代码运行他为什么判我结果错误啊?
只看楼主 加入收藏
帝师
Rank: 2
来 自:湖南
等 级:论坛游民
帖 子:166
专家分:92
注 册:2018-10-11
结帖率:92.31%
收藏
已结贴  问题点数:20 回复次数:20 
在acm上我的这个代码运行他为什么判我结果错误啊?
题目:

有如下公式,要求根据输入的整数m计算下面公式的值:
t=1-1/2*2-1/3*3.....1/m*m


输入


输入一个整数m。
 


输出


输出对应的结果,保留六位小数。


样例输入


5

样例输出


0.536389


#include<stdio.h>
int main()
{
    double t=0;
    int m;
    int i,j;
    scanf("%d",&m);
    for(j=1,i=1;i<=m;i++)
    {
        
        t+=j*1/(i*i*1.0);
        j=-1;
    }
    printf("%.6lf\12",t);
    return 0;
}
搜索更多相关主题的帖子: acm 代码 结果 输入 int 
2018-12-10 21:14
花脸
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:9
帖 子:788
专家分:907
注 册:2017-1-4
收藏
得分:0 
变换符号的话用:j*=-1;吧。
2018-12-10 22:23
帝师
Rank: 2
来 自:湖南
等 级:论坛游民
帖 子:166
专家分:92
注 册:2018-10-11
收藏
得分:0 
回复 2楼 花脸
可他后面都是负数,而我的j是乘上去的,我直接等于负一才行啊,如多j*=-1那就变成一个负的一个正的啦

I am the voice of the next generation
Completely digital
Create synthetic auras
2018-12-11 07:20
wlxy_wang
Rank: 5Rank: 5
等 级:职业侠客
威 望:2
帖 子:77
专家分:303
注 册:2018-11-2
收藏
得分:0 
在你原来的基础上改的,去掉了一个变量j,+=变成了-=,你自己看一下吧
程序代码:
#include<stdio.h>
int main()
{
    double t=1;
    int m;
    int i;
    scanf("%d",&m);
    for(i=2;i<=m;i++)
    {
        
        t-=1.0/(i*i*1.0);
        
    }
    printf("%.6lf\12",t);
    return 0;
}
2018-12-11 09:18
帝师
Rank: 2
来 自:湖南
等 级:论坛游民
帖 子:166
专家分:92
注 册:2018-10-11
收藏
得分:0 
回复 4楼 wlxy_wang
不行啊,还是判错

I am the voice of the next generation
Completely digital
Create synthetic auras
2018-12-11 10:59
wlxy_wang
Rank: 5Rank: 5
等 级:职业侠客
威 望:2
帖 子:77
专家分:303
注 册:2018-11-2
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册
2018-12-11 16:00
帝师
Rank: 2
来 自:湖南
等 级:论坛游民
帖 子:166
专家分:92
注 册:2018-10-11
收藏
得分:0 
回复 6楼 wlxy_wang
是的这个还是判错,我原先代码也是和答案一样,但就是不给过

I am the voice of the next generation
Completely digital
Create synthetic auras
2018-12-11 19:23
wlxy_wang
Rank: 5Rank: 5
等 级:职业侠客
威 望:2
帖 子:77
专家分:303
注 册:2018-11-2
收藏
得分:0 
那就不是程序的错误了,可能你的程序在时间,或者空间的角度超过判断标准了,改进算法吧
2018-12-11 20:03
wlxy_wang
Rank: 5Rank: 5
等 级:职业侠客
威 望:2
帖 子:77
专家分:303
注 册:2018-11-2
收藏
得分:0 
看看这个改过之后的程序,去掉了一个变量,减少了乘法运算。
程序代码:
#include<stdio.h>
int main()
{
    double t=1;
    int m;
    scanf("%d",&m);
    do
    {        
        t-=1.0/(m*m);
        m--;        
    }while(m);
    printf("%.6lf\12",t);
    return 0;
}
2018-12-11 20:09
帝师
Rank: 2
来 自:湖南
等 级:论坛游民
帖 子:166
专家分:92
注 册:2018-10-11
收藏
得分:0 
回复 9楼 wlxy_wang
还是不行,在ACM上一般把时间和空间都放得蛮宽的,一楼就是原题我复制过来的,是不是有特殊用例要考虑

I am the voice of the next generation
Completely digital
Create synthetic auras
2018-12-11 21:13
快速回复:在acm上我的这个代码运行他为什么判我结果错误啊?
数据加载中...
 
   



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

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