2用数组处理求 Fibonacci数列问题: 计算数列前30项保存到一维数组中。程序 包括以下功能,可输入1-30的整数查看对应的第n位斐波拉契数 是多少。当输入值不在1-30之中,则结束程序。保存为2.c
时间: 2023-08-31 15:21:41 浏览: 299
### 回答1:
```c
#include <stdio.h>
int main()
{
int n;
int fib[30] = {0, 1}; // 数组初始化为0和1
// 计算前30项斐波那契数列
for (int i = 2; i < 30; i++)
{
fib[i] = fib[i-1] + fib[i-2];
}
// 输入要查看的项数
printf("请输入要查看的斐波那契数列项数(1-30):");
scanf("%d", &n);
if (n < 1 || n > 30)
{
printf("请输入1-30之间的整数!\n");
return 0;
}
printf("第%d项斐波那契数列的值为:%d\n", n, fib[n-1]);
return 0;
}
```
### 回答2:
以下是一个用数组处理求Fibonacci数列问题的程序,可以计算数列前30项并保存到一维数组中。程序还包含以下功能,可以输入1-30的整数并查看对应的第n位斐波拉契数是多少。当输入值不在1-30之中时,程序将结束。保存为2.c。
```c
#include <stdio.h>
void fibonacci(int n, int fib[]) {
fib[0] = 0;
fib[1] = 1;
for (int i = 2; i < n; i++) {
fib[i] = fib[i - 1] + fib[i - 2];
}
}
int main() {
int fib[30];
fibonacci(30, fib);
int n;
while (1) {
printf("请输入1-30之间的整数(n),输入-1退出程序:");
scanf("%d", &n);
if (n == -1) {
break;
}
if (n >= 1 && n <= 30) {
printf("第%d位斐波拉契数是:%d\n", n, fib[n - 1]);
} else {
printf("输入错误,请输入1-30之间的整数。\n");
}
}
return 0;
}
```
在这个程序中,我们首先定义了一个`fibonacci`函数,它使用一个循环来计算前`n`项斐波拉契数,并将结果保存到数组`fib`中。
然后,在`main`函数中,我们首先声明了一个大小为30的整型数组`fib`,然后调用`fibonacci`函数来计算并保存斐波拉契数列。
接下来,我们使用一个无限循环,每次循环中要求用户输入一个1-30之间的整数`n`,如果输入的是-1,则退出程序。如果输入位于1-30之间,则输出对应的斐波拉契数。如果输入不在1-30之间,则输出错误信息。
这个程序可以满足题目中的要求,可以通过输入1-30的整数来查看对应的斐波拉契数是多少,并且在输入不合法的情况下会结束程序的运行。
### 回答3:
#include <stdio.h>
int main()
{
int n;
int fibo[30];
// 计算斐波那契数列前30项并保存到数组中
fibo[0] = 0;
fibo[1] = 1;
for (int i = 2; i < 30; i++)
{
fibo[i] = fibo[i-1] + fibo[i-2];
}
// 输入要查询的位数
printf("请输入要查询的斐波那契数列位数(1-30):");
scanf("%d", &n);
// 查询对应的斐波那契数
if (n >= 1 && n <= 30)
{
printf("第%d位的斐波那契数是:%d\n", n, fibo[n-1]);
}
else
{
printf("输入有误,程序结束。\n");
}
return 0;
}
阅读全文