哪错了...算斐波那契的
c4droid吧
全部回复
仅看楼主
level 9
//Fibonacci()函数
//目的_1:用户输入第n项显示从第一个开始到n的数 以及n项之和
//Fibonacci number:1,1,2,3,5,8,13,21,34,55,89.....
#include<stdio.h>
void Fib(void);
int main(void){
Fib();
return 0;
}
void Fib(void){
printf("enter a number,please\n");
int n=getchar();
int num_Fib_bef,num_Fib_aft;
num_Fib_bef=0;
num_Fib_aft=1;
int n_1=1;
int tot=0;
for(;n_1<=n;n_1++){
putchar(num_Fib_aft);
tot+=num_Fib_aft;
int num_Fib_aft_2=num_Fib_aft;
num_Fib_aft+=num_Fib_bef;
num_Fib_bef=num_Fib_aft_2;
}
putchar(tot);
}
2017年03月17日 09点03分 1
level 10
我就问getchar的char是啥意思
2017年03月17日 13点03分 2
对啊没错啊
2017年03月17日 14点03分
能编译的没报错,就是进去和我想的不一样
2017年03月17日 14点03分
@卡塞凯姆威i char是字符啊,getchar读入一个字符,在不考虑换行符被读入的情况下读入第一个字符,比如10,读入1,而且是(int)'1',翻译成人话,31,这能对就怪了……
2017年03月17日 14点03分
@6l3_永远 好吧一个忘了...但是我运行的时候输6也不行...
2017年03月17日 14点03分
level 9
2017年03月17日 14点03分 3
scanf是有返回值的,你这样n会变成1……
2017年03月17日 14点03分
@6l3_永远 对...你一说才想起...尴尬了,刚刚测试了确实一直是1
2017年03月17日 14点03分
level 11
这用递归写啊。多简单。
int f(int n){
if(n==1||n==2)
return 1;
else
return f(n-1)+f(n-2);
}
2017年03月21日 00点03分 4
不是很熟悉递归...
2017年04月02日 00点04分
level 4
下划线有什么用?
2017年03月21日 07点03分 5
声明而已,容易分辨
2017年04月02日 00点04分
1