我正在编写一个程序,使用递归计算给定整数的斐波纳契数。我创造了自己的功能'斐波那契'并使程序在循环中运行,如代码中所示。
该程序希望我使用switch语句来操作菜单(菜单是用户可以选择查找fibonacci或退出程序的两个选项的菜单),我仍然坚持如何使用switch语句为了使用菜单。
这是我到目前为止编写的代码
#include <stdio.h>
int fibonacci(int num);
int main(int argc, char const *argv[]) {
int choice;
int num;
int sequence;
printf("1) Calculate Fibonacci\n");
printf("2) Exit\n");
scanf("%d", &choice);
if (choice == 1)
{
do
{
printf("Input integer n :\n");
scanf("%d", &num);
if (num < 0)
{
printf("n should be a positive integer (n >= 1). Retry\n");
}
} while (num < 0);
}
if (choice == 1 && num > 0)
{
printf("Fibonacci sequence of %d terms\n", num);
答案 0 :(得分:0)
来自Kernighan和Ritchie的“C编程语言”:
“switch语句是一个多方决策,用于测试表达式是否匹配多个常量整数值之一,并相应地进行分支。”
所以看起来应该类似于:
while ((choice = getchar())!= EOF){
switch (choice){
case '1':
// calculate Fibonacci sequence
break;
case '2':
return 0;
}
}
正如其中一条评论所暗示的那样,要么在开始时初始化局部变量,要么检查getchar()或scanf()调用的返回值,因为未初始化变量的值是不确定的。
如果你刚刚开始学习C,我建议你阅读我提到的那本书。它相对较短,有很多有用的例子。