求助 斐波那契 C语言
本帖最后由 际天 于 2021-6-1 18:08 编辑xdm,帮忙看看哪里错了[笑哭]
#include<stdio.h>
int main() {
int a = {1, 1};
int i;
int n;
scanf("%d", &n);
if (n <= 2) {
printf("%d\n", 1);
}
for (i = 2; i <= n; i++) {
a = a + a;
}
printf("%d\n", a);
return 0;
} 不太懂C语言<br />
上面定义的n为int, 默认值应该是0吧, 然后下面的if n <=2 这里不是永远为真吗? n 看样子是不是 a 数组的长度? 谢谢楼主 你这没保存从第三项开始的值,应该是
for (i = 2; i <= n; i++) {
a = a + a;
}
printf("%d\n", a); 本帖最后由 我心她有丶 于 2021-6-1 18:22 编辑
a = a + a ;
printf("%d",a);
pinoz 发表于 2021-6-1 18:14
你这没保存从第三项开始的值,应该是
for (i = 2; i
原来如此,感谢!!! 快乐小风 发表于 2021-6-1 18:11
不太懂C语言
上面定义的n为int, 默认值应该是0吧, 然后下面的if n
scanf("%d",&n);这句说明输入一个数并把它赋值给n,一般输入的会大于2,输入小于2要有截止条件比如输入1,解果就为1,输入2,结果也为1. 我感觉除了改成 for (i = 2; i <= n; i++) {
a = a + a;
}
printf("%d\n", a);
还得在for循环前加一个else,要是不加的话,不管怎样都会出现两个输出。
pinoz 发表于 2021-6-1 18:14
你这没保存从第三项开始的值,应该是
for (i = 2; i
你这没区别。。。。C又不看缩进 本帖最后由 我心她有丶 于 2021-6-1 23:18 编辑
tester001 发表于 2021-6-1 23:06
你这没区别。。。。C又不看缩进
// 区别大了去了,你仔细看看吧。a和a可不同
页:
[1]
2