cfnr.net
当前位置:首页 >> C语言 数组输出斐波那契数列前100项出现负数? >>

C语言 数组输出斐波那契数列前100项出现负数?

因为f[100]是一个很大的数字,int根本就表示不下来,应该用大数的加法来做的 #include #include void sum(char a[],char b[]) { int i,n,k; for(i=strlen(b)-1,k=0;i>=0;k++,i--) { a[k]+=b[i]-'0'; n=k; while(a[n]>'9') { a[n+1]+=(a[n]-'0')/...

因为f[100]是一个很大的数字,int根本就表示不下来,应该用大数的加法来做的 #include #include void sum(char a[],char b[]) { int i,n,k; for(i=strlen(b)-1,k=0;i>=0;k++,i--) { a[k]+=b[i]-'0'; n=k; while(a[n]>'9') { a[n+1]+=(a[n]-'0')/...

斐波那契数列是:1,1,2,3,5,8,13,21,34,55,89... 规律是:f[0]=1,f[1]=1,f[i]=f[i-1]+f[i-2],i>1 #include void main() { int i,array[20]={1,1}; for (i=2; i

你这写的是什么额? c=a+b, 然后c又赋给b, b又赋给a,相当于c赋给了a和b,直接就是c=2b,输出的全是偶数, 错误的地方就是 for循环里面语句的顺序,应该 先是a=b,b=c,c=a+b。你试试 printf("%d",c); for (i=1;i

思路:先定义数组的前两项值,再依次对后面每项进行赋值,后面每项都是前两项的和。 例如: #include int main(){ int a[20],i; a[0]=a[1]=1; for(i=2;i

你的值超过int表示的最大正数了, int类型换成unsigned int 或者double 类型试试,输出结果的时候,不输出小数点

#include int fac(){ static int f=1,q=0; f+=q; q=f-q; return q; } int main(){ for(int i=0;i

#include int main(){int i,f[10]={1,1};for(i=0;i1) f[i]=f[i-1]+f[i-2];printf("%d ",f[i]);}return 0;}

#include "stdafx.h" //这是 VS 预编译头。其他系统删除。 #include #include //使用 system("pause"); 时需要。 //MS 否决了 scanf 等函数,加上下句,仍然可用。其他系统删除。 #pragma warning(disable:4996) //问题:斐波那契数列的定义为:...

#include void main(){int i,n=0,f[20]={1,1};for(i=0;i1) f[i]=f[i-1]+f[i-2];printf("%-5d",f[i]);n++;if(n%10==0)printf("\n");}}

网站首页 | 网站地图
All rights reserved Powered by www.cfnr.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com