c语言问题啊
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言问题啊相关的知识,希望对你有一定的参考价值。
c语言问题啊6-2 使用函数输出指定范围内的Fibonacci数(20 分)本题要求实现一个计算Fibonacci数的简单函数,并利用其实现另一个函数,输出两正整数m和n(0<m≤n≤10000)之间的所有Fibonacci数。所谓Fibonacci数列就是满足任一项数字是前两项的和(最开始两项均定义为1)的数列。函数接口定义:int fib( int n );void PrintFN( int m, int n );其中函数fib须返回第n项Fibonacci数;函数PrintFN要在一行中输出给定范围[m, n]内的所有Fibonacci数,相邻数字间有一个空格,行末不得有多余空格。如果给定区间内没有Fibonacci数,则输出一行“No Fibonacci number”。裁判测试程序样例:#include <stdio.h>int fib( int n );void PrintFN( int m, int n ); int main() int m, n, t; scanf("%d %d %d", &m, &n, &t); printf("fib(%d) = %d\n", t, fib(t)); PrintFN(m, n); return 0;/* 你的代码将被嵌在这里 */输入样例1:20 100 7输出样例1:fib(7) = 1321 34 55 89输入样例2:2000 2500 8输出样例2:fib(8) = 21No Fibonacci number
int fib(int n) int i, x1, x2, x; x=0; x1=1; x2=1; for (i=3; i<=n; i++) x=x1+x2; x1=x2; x2=x; if (n==1 || n==2) x=1; return x;void PrintFN(int m, int n) int i, count, index, flag; index=0; flag=0; i=1; while (fib(i) < 10000) i++; count = i; for (i = 1; i < count; i++) if (fib(i) >= m && fib(i) <= n) flag = 1; index++; if (index == 1) printf("%d", fib(i)); continue; printf(" %d", fib(i)); if (!flag) printf("No Fibonacci number"); putchar('\n');
continue语句起到的具体作用是什么
int fib(int n)
int a,b;
for(a=b=1;n>1;b+=a,a=b-a,n--);
return a;
void PrintFN(int m,int n)
int x,t,f;
x=f=0;
while(fib(++x)<m);
while((t=fib(x++))<=n)
printf(fib(x)<n ? "%d " : "%d\\n",t);
f++;
if(!f)
printf("No Fibonacci number.\\n");
int main(int argv,char *argc[])
int m,n;
printf("Input m & n(int 0<m<=n<=10000)...\\n");
if(scanf("%d%d",&m,&n)!=2 || m<1 || n>10000 || m>n)
printf("Input error, exit...\\n");
return 0;
PrintFN(m,n);
return 0;
参考技术A 跳过if后的print语句,防止两次打印同一个数。
if 只有在第一次循环,index=1时才执行,而if中执行的内容又与if外的相同,所以要避免这种矛盾
c语言怎么反编译啊,教教我
c语言怎么反编译,我不会,速速来回答。。。。。。。。。。。。。。。。
参考技术A 用idapro,这是市面上能买到的软件中最棒的反向工程软件。
你可以试试看,它配合插件甚至可以得到几乎乱真的C/C++伪码,甚至不用修改就能编译回去。
以上是关于c语言问题啊的主要内容,如果未能解决你的问题,请参考以下文章