cookies945 发表于 2018-10-22 18:05:56

求助大佬们,我就是不能弄出浮点型帮帮忙吧

#include <stdio.h>
int main(){
        int n,i = 1,l;
        float sum = 0.0,u,k = 1.0,j = 2.0;
        scanf("%d",&n);
        for (;i <= n;i++){
                u = j / k *1.00;
                sum = sum + u;
                l = j;
                j = j + k;
                k = j;
                printf("%.2f",u);
        }
        printf("%.2f",sum);
        return 0;
}

u的输出一直都是整数的,比如输入2 他就是2.00 1.00 大佬们麻烦看看错在哪里

TyCk 发表于 2018-10-22 18:11:52

2.00和1.00不就是小数类型的么?{:10_266:}

claws0n 发表于 2018-10-22 18:22:17

嗯嗯,同楼上,小数就是所谓的浮点型~~

cookies945 发表于 2018-10-24 14:44:25

TyCk 发表于 2018-10-22 18:11
2.00和1.00不就是小数类型的么?

3/2不应该是1.5么但是他显示的是一啊
八嘎就是出在这里{:10_266:}

TyCk 发表于 2018-10-24 17:39:42

cookies945 发表于 2018-10-24 14:44
3/2不应该是1.5么但是他显示的是一啊
八嘎就是出在这里

{:10_245:}你这里是 2/1*1.00,没有3/2,仔细捋一下

a2421480 发表于 2018-10-25 12:58:59

这是C?

cookies945 发表于 2018-10-25 15:29:47

TyCk 发表于 2018-10-24 17:39
你这里是 2/1*1.00,没有3/2,仔细捋一下

当n>=2的时候就有了
这里是有一个循环的

cookies945 发表于 2018-10-25 15:30:21

a2421480 发表于 2018-10-25 12:58
这是C?

是c语言

cookies945 发表于 2018-10-25 15:32:37

claws0n 发表于 2018-10-22 18:22
嗯嗯,同楼上,小数就是所谓的浮点型~~

当n >= 2 时,j = 3,k = 2,应该的到1.500,但是运行只得到1.00
就是这个八嘎

TyCk 发表于 2018-10-25 17:51:06

cookies945 发表于 2018-10-25 15:29
当n>=2的时候就有了
这里是有一个循环的

循环你仔细看下,一个循环完成后,k和j是相等的
就是这两句代码:
j=j+k;
k=j;
不清楚,你是如何计算得到3/2的{:10_260:}

cookies945 发表于 2018-10-25 20:34:20

TyCk 发表于 2018-10-25 17:51
循环你仔细看下,一个循环完成后,k和j是相等的
就是这两句代码:



有理 果然是大佬我学到了,多谢大佬指点

TyCk 发表于 2018-10-25 21:50:31

cookies945 发表于 2018-10-25 20:34
有理 果然是大佬我学到了,多谢大佬指点

不用谢,称不起这句大佬的{:10_245:}
基本逻辑一定要捋清楚哦,要一步步地推演一下自己的代码!{:10_256:}

cookies945 发表于 2018-10-26 16:09:04

TyCk 发表于 2018-10-25 21:50
不用谢,称不起这句大佬的
基本逻辑一定要捋清楚哦,要一步步地推演一下自己的代码!{:10_256 ...

谦虚了大神,我会努力的{:5_109:}
页: [1]
查看完整版本: 求助大佬们,我就是不能弄出浮点型帮帮忙吧