永发信息网

C语言 输出答案一直为-858993460

答案:4  悬赏:80  手机版
解决时间 2021-03-19 19:09
编译没有错><但是一直输出的都是错误的数字
#include<stdio.h>
int main(void)
{
int m,n,F;
int fib(int m,int n);
printf("Enter m,n(1≤m,n≥1000):");
scanf("%d%d",&m,&n);
F=fib(m,n);
printf("F=%d",F);
return 0;
}
int fib(int m,int n)
{
int k,i,pr1,pr2,s;
if(k==1||k==2)
s=1;
else i=3,pr1=1,pr2=2;
while(i<=k){
s=pr1+pr2;
pr1=pr2;
pr2=s,i++;
}
return s;
}

题目是这个:
输入两个正整数m和n(1≤m,n≤1000),输出m~n之间的所有的Fibonacci数。Fibonacci数列(第1项起):1、1、2、3、5、8、13、21、…要求定义并调用函数fib(n),它的功能是返回第n项Fibonacci数。
OTZ因为明天要交作业所以很着急……求帮助,谢谢
最佳答案
定义存储空间不足,发生溢出错误
long F;

正确程序如下:
#include<stdio.h>
int main(void)
{
int i,m,n;
int fib(int n);
printf("Input m: ");
scanf("%d",&m);
printf("Input n: ");
scanf("%d",&n);
while(m>=1&&n<=10000&&m<=n)
{
for(i=1;i<=n;i++)
if(fib(i)>=m&&fib(i)<=n)
printf("%d ",fib(i));break;
}
return 0;
}
int fib(int n)
{
if(n==1)
return 1;
if(n==2)
return 1;
else
return fib(n-1)+fib(n-2);
}
全部回答
#include<stdio.h> int fib(int n) { if(n==1||n==2) return 1; else return fib(n-2)+fib(n-1); } int main(void) { int m,n,i; printf("Enter m,n(1≤m,n≥1000):"); scanf("%d%d",&m,&n); for(i=1;;i++) { if(fib(i)>=m&&fib(i)<=n) { printf("%d,",fib(i)); } if(fib(i)>n) break; } return 0; } 仔细看了一下,你的代码完全没按照题目来,所以就全给你改了...
太乱了,读不下来。下面提供一个C的看看符合不符合你的题意…… #include "stdio.h"// int fib(int n){ int a,b,i; if(n==1 || n==2) return 1; for(a=b=1,i=2;i<n;b=a+b,a=b-a,i++); return b; } void main(void){ int m,n,F,i; printf("Enter m,n(1<=m,n<=1000):"); scanf("%d%d",&m,&n); i=1; while((F=fib(i++))<m);i--; while((F=fib(i++))<n) printf("%d ",F); printf("\n"); }
把第二个函数改为double 型就可以啦 #include "stdio.h" double qiuhe(int n) { double re=0; int i; for(i=1;i<=n;i++) { re+=i; } return re; } double qiupfhe(int n) { double re=0; int i; for(i=1;i<=n;i++) { re+=i*i; } return re; } double qiudshe(int n) { double re=0; int i; for(i=1;i<=n;i++) { re+=1.0/i; } return re; } main() { double res; res=qiuhe(100)+qiupfhe(50)+qiudshe(10); printf("%.4f\t",res); }
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
宜家有网上购物吗
怎样写理科转文科的申请书~~~急~~~谢谢了
照片被乱发怎么办!!!
身高1.73体重64kg出多大的冲锋衣合适?m还是L
要生男孩?吃什么好
文科生,一二三诊平均就370、380分左右,那就
砚山县食品药品综合检测中心我想知道这个在什
刚买的篮球被刺扎了、怎么能补回来?
直系亲属购房能提取公积金么
问道金头陀强化一可加多少比例的伤,强化划不
鞋子发黄了,是怎么回事
丰家堂我想知道这个在什么地方
40寸是多少厘米
爆发力是不是天生的,靠后天可以练出来吗
市政工程室外铺设大理石多远留缝,缝宽多少
推荐资讯
minitab16当我用统计--控制图---BOX COX变换
如何让我的面包车在开门的时候转向灯同时闪烁
汽车1小时能开多少公里
倩字究竟五行属木属火还是属金?网上鱼目混珠
今天建设银行密码输错3次,第二天会不会自动
百吉顺快餐怎么去啊,有知道地址的么
名流私房港式甜品我想知道这个在什么地方
胃胀肠鸣该怎么缓解
圆通快递(108国道南50米圆通快递)地址有知道
中寨子红河大桥我想知道这个在什么地方
观世音能称佛祖吗
生活中有规律的事物
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?