我想编写一个程序来计算斐波那契数列的第 n 个数,这是我使用 printf 和 scanf 完成的。但我希望更改我的程序,以便在命令行中输入序列号,而不是在程序提示时输入。这就是我想出的。它可以编译,但是当我运行它时它会崩溃……不知道为什么。如有任何建议,我们将不胜感激。
这是一个使用迭代计算斐波那契代码的第 n 个数的程序。我是这样写的:您必须在命令行 argv[1] 中输入要计算的序列号。该程序然后采用此命令行参数并在 while 循环中使用它,并打印此数字。
#include <stdio.h>
int main( int argc, char**argv ) {
int fib[3] = {0,1};
int counter = 0;
printf("The %dth Fibonacci number is:\n", atoi(argv[1]));
while ( counter < atoi(argv[1]) ) {
fib[2] = fib[0] + fib[1];
fib[0] = fib[1];
fib[1] = fib[2];
counter++;
}
printf("%d\n", fib[0]);
getchar();
return 0;
}
检查用户是否真的传递了一个参数:
int main( int argc, char**argv ) {
if (argc < 2) {
printf("Usage: %s number\n", argv[0]);
return 1;
}
...
}
如果他不这样做,argv[1]
为空,你就会崩溃
我是一名优秀的程序员,十分优秀!