吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1437|回复: 10
收起左侧

[求助] 求助 斐波那契 C语言

[复制链接]
际天 发表于 2021-6-1 18:03
本帖最后由 际天 于 2021-6-1 18:08 编辑

xdm,帮忙看看哪里错了[笑哭]

#include<stdio.h>
int main() {
        int a[1000] = {1, 1};
        int i;
        int n;
        scanf("%d", &n);
        if (n <= 2) {
                printf("%d\n", 1);
        }
        for (i = 2; i <= n; i++) {
                a = a[i - 1] + a[i - 2];
        }
        printf("%d\n", a);
        return 0;
}

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

快乐小风 发表于 2021-6-1 18:11
不太懂C语言<br />
上面定义的n为int, 默认值应该是0吧, 然后下面的  if n <=2 这里不是永远为真吗? n 看样子是不是 a 数组的长度?
月半宝2020 发表于 2021-6-1 18:13
谢谢楼主

免费评分

参与人数 1吾爱币 -5 收起 理由
alittlebear -5 请勿灌水,提高回帖质量是每位会员应尽的义务!

查看全部评分

pinoz 发表于 2021-6-1 18:14
你这没保存从第三项开始的值,应该是
for (i = 2; i <= n; i++) {
                a[i] = a[i - 1] + a[i - 2];
        }
        printf("%d\n", a[n]);

免费评分

参与人数 2吾爱币 +1 热心值 +2 收起 理由
领悟者的涂鸦笔 + 1 我很赞同!
际天 + 1 + 1 谢谢@Thanks!

查看全部评分

我心她有丶 发表于 2021-6-1 18:20
本帖最后由 我心她有丶 于 2021-6-1 18:22 编辑

[C] 纯文本查看 复制代码
a[i] = a[i-1] + a[i-2] ;  

printf("%d",a[n]);
 楼主| 际天 发表于 2021-6-1 18:29
pinoz 发表于 2021-6-1 18:14
你这没保存从第三项开始的值,应该是
for (i = 2; i

原来如此,感谢!!!
Apologize2U 发表于 2021-6-1 20:11
快乐小风 发表于 2021-6-1 18:11
不太懂C语言
上面定义的n为int, 默认值应该是0吧, 然后下面的  if n

scanf("%d",&n);这句说明输入一个数并把它赋值给n,一般输入的会大于2,输入小于2要有截止条件比如输入1,解果就为1,输入2,结果也为1.
Apologize2U 发表于 2021-6-1 20:18
我感觉除了改成 for (i = 2; i <= n; i++) {
                a [i]= a[i - 1] + a[i - 2];
        }
        printf("%d\n", a[i]);
还得在for循环前加一个else,要是不加的话,不管怎样都会出现两个输出。
tester001 发表于 2021-6-1 23:06
pinoz 发表于 2021-6-1 18:14
你这没保存从第三项开始的值,应该是
for (i = 2; i

你这没区别。。。。C又不看缩进
我心她有丶 发表于 2021-6-1 23:17
本帖最后由 我心她有丶 于 2021-6-1 23:18 编辑
tester001 发表于 2021-6-1 23:06
你这没区别。。。。C又不看缩进

[C] 纯文本查看 复制代码
// 区别大了去了,你仔细看看吧。a和a[i]可不同
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 01:55

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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