【发布时间】:2018-04-18 07:10:53
【问题描述】:
我需要创建一个程序,用户将在其中输入多个整数,程序将输出具有比用户输入的下一个更大数字的斐波那契数列。 斐波那契数列如下:
0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765
例子:
用户输入:[1, 9, 22]
输出应该是:2, 13, 34
如果 if 循环已经获得一个值,我似乎无法停止它,因为输出将始终显示 4181、4181、4181。 我的代码如下:
#include <stdio.h>
#include <conio.h>
void main()
{
int i, n, a[100];
int inputarray[3], j;
int outputarray[3];
a[0] = 0;
a[1] = 1;
for (i = 2; i < 20; i++) {
a[i] = a[i-1] + a[i-2];
}
for (i = 0; i < 20; i++) {
printf("%5d",a[i]);
}
for (j = 0; j < 3; j++) {
printf ("\nEnter numbers of input array:");
scanf ("%d", &inputarray[j]);
}
for (i = 0; i < 3; i++) {
for (j = 0; j < 20; j++) {
if (a[j] > inputarray[i])
outputarray[i] = a[j];
}
}
for (i = 0; i < 3; i++) {
printf("%5d", outputarray[i]);
}
getch();
}
【问题讨论】:
-
不知道你为什么说if循环,究竟是什么?
-
什么是“if循环”!?
-
另外,您的代码使用了一个古老的
main()签名,它不再被接受,请将其更改为int main(void)。 -
你的代码风格也很不一致,所以看起来你要么是从其他地方复制粘贴了部分代码,要么是由多个程序员编写的。