鱼C论坛

 找回密码
 立即注册
查看: 19376|回复: 18

C语言:计算t=1+1/2+1/3+...+1/n

[复制链接]
发表于 2015-10-24 14:47:03 | 显示全部楼层 |阅读模式
5鱼币
本帖最后由 独一无② 于 2015-10-24 14:59 编辑

                                                                                                    C语言
题目描述:计算t=1+1/2+1/3+...+1/n
输入:整型变量n
输出:t(保留六位小数)
样例输入

10

样例输出

2.928968

我的代码:

# include <stdio.h>
main ()
{
        int a,n;
        float b,c;
        scanf("%d",&n);
        for(a=1;a<=n;a++)
        {
                b=1.0/a;
                c+=b;
                
        }
        printf("%.6f\n",c);
        
}

软件:C-free
系统判定,答案错误(系统里有多组数据)。我不知道哪里错了,求帮助 。

最佳答案

查看完整内容

#include void main() { float i, n, sum = 0, temp; printf("please input n:\n"); scanf("%f", &n); for (i = 1; i < (n + 1); i++) { temp = 1 / i; sum += temp; } printf("%.6f\n", sum); } 把a赋值成浮点就可以了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-10-24 14:47:04 | 显示全部楼层
#include<stdio.h>
void main()
{
                float i, n, sum = 0, temp;
                printf("please input n:\n");
                scanf("%f", &n);
                for (i = 1; i < (n + 1); i++)
                {
                        temp = 1 / i;
                        sum += temp;
                }
                printf("%.6f\n", sum);
        
}
把a赋值成浮点就可以了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2015-10-24 17:51:15 | 显示全部楼层
可能是 系统问题,真是醉了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-10-24 18:16:19 | 显示全部楼层
请问c的初始是多少,你调试下看看 c的初始值可能不是0
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-10-24 19:24:17 | 显示全部楼层
楼主你的c要赋值0啊,其他没错,我试过了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2015-10-24 19:58:50 | 显示全部楼层
淡蓝色的花 发表于 2015-10-24 19:24
楼主你的c要赋值0啊,其他没错,我试过了

哦哦,的确没有赋值,不过 编译竟然没有报错,我在试试
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2015-10-24 20:04:28 | 显示全部楼层
y290176346 发表于 2015-10-24 18:16
请问c的初始是多少,你调试下看看 c的初始值可能不是0

赋值 C 等于0和没有赋值有什么区别呢,我发现调试都没有出错,并且 答案一样,真是醉了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-10-24 20:56:53 | 显示全部楼层
独一无② 发表于 2015-10-24 20:04
赋值 C 等于0和没有赋值有什么区别呢,我发现调试都没有出错,并且 答案一样,真是醉了

C若不初始化,则C就有一个垃圾值,所以最后结果当然不一样了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2015-10-24 21:06:31 | 显示全部楼层
文子丨 发表于 2015-10-24 20:56
C若不初始化,则C就有一个垃圾值,所以最后结果当然不一样了。

可是 为什么我调试 结果 答案正确。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-10-24 22:11:20 | 显示全部楼层
独一无② 发表于 2015-10-24 21:06
可是 为什么我调试 结果 答案正确。

没用过你的编译器,vs 你的c没有初始值的 是编译不通过的,有的编译器默认初始化变量会为0
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-10-25 07:48:08 | 显示全部楼层
#include <stdio.h>

int main()
{
    int a,n;
    float b,c;
    scanf("%d",&n);
    for(a=1;a<=n;a++)
    {
        b=1.0/a;
        c+=b;
        
    }
    printf("%.6f\n",c);
    
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-10-25 07:49:47 | 显示全部楼层
main()前少了个int ,#include<stdio.h>后要加回车
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2015-10-25 11:12:43 | 显示全部楼层
youliyuan2005 发表于 2015-10-25 07:49
main()前少了个int ,#include后要加回车

回不回车 问题不大,main前面 加int 是表示返回类型为 整型吗?那不是应该加 return 吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-10-25 12:04:25 | 显示全部楼层
独一无② 发表于 2015-10-25 11:12
回不回车 问题不大,main前面 加int 是表示返回类型为 整型吗?那不是应该加 return 吗?

加 int 是表示返回类型, 函数前面是必须有返回类型的,如果你没加也能通过,这个是编译器给你加了一个默认的,在vs 里没有返回类型是编译不同 过的,函数最好都有一个return , 不加在控制台里好像也没什么关系。在以后的正式编程中应该都需要这个return
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-10-25 16:14:08 | 显示全部楼层
c变量没有初始化,注意输出格式
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-10-28 21:34:49 | 显示全部楼层
int c 没有初始赋值
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-10-28 23:05:23 | 显示全部楼层
本帖最后由 hiwch 于 2015-10-29 19:32 编辑

这是我的代码亲测了可以的
#include<stdio.h>
void main()
{
                float i, n, sum = 0, temp;
                printf("please input n:\n");
                scanf("%f", &n);
                for (i = 1; i < (n + 1); i++)
                {
                        temp = 1 / i;
                        sum += temp;
                }
                printf("%.6f\n", sum);
        
}

本帖最后由 hiwch 于 2015-10-28 23:13 编辑


我一个开始也是把n和i设置成整形,但是整形就是不行,只有把他们的类型定义成浮点型才可以。估计是因为整形的限制太大了在运算中不注意就会导致数据和我们想的不一样吧,谁让整形占用的空间小呢,有得必有失吧。对了我用的是vs2015,你也试着把你的变量都声明为实型试试看吧。
意义问.PNG
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-10-28 23:08:14 | 显示全部楼层
本帖最后由 hiwch 于 2015-10-29 19:32 编辑

来拿鱼币的呵呵:smile
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-11-7 21:07:14 | 显示全部楼层
可能是 系统问题,真是醉了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-26 14:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表