我用C语言编写了一个相当简单的程序,它接受一个输入n,并计算斐波那契数列中的第n个数字。当这个程序运行时,你在键盘上输入一个数字,它就会打印出结果。我的问题是,我一次只能手动测试一个输入,以检查错误。我如何编写一个程序来同时测试多个输入,并将结果输出到一个可读的文本文件中呢?我试过写一个程序来运行这些测试,但是我不知道如何让程序使用我写在一个单独文件中的函数。我似乎一次只能测试一个,而且当我把结果输出到一个文本文件时,我也不能读取这个文本文件,它是空的。
i5desfxk1#
最简单的解决方案是将代码迁移到函数中,然后在循环中调用它:
#include <stdio.h> long fib(long n) { // ... } int main() { long n = 2; for(long i = 0; i < n; i++) printf("%ld %ld\n", i, fib(i)); }
为了做到这一点,你必须把i/o(提示用户输入)和实现斐波那契算法的函数分开,这通常是一个很好的设计实践,你可以构建两个程序(一个交互式的,一个非交互式的),或者一个程序,比如用一个参数驱动它:
int main(int argv, char argv[]) { if(argc != 2) { printf("n? "); long n; if(scanf("%ld", &n) != 1) return 1; printf("%ld %ld\n", n, fib(n)); } else { long n = atol(argv[1]); for(long i = 0; i < n; i++) printf("%ld %ld\n", i, fib(i)); } }
我建议您打印数据,然后将标准输出重定向到一个文件。您必须向我们展示一些代码,以找出为什么您的文本输出文件功能不工作。
1条答案
按热度按时间i5desfxk1#
最简单的解决方案是将代码迁移到函数中,然后在循环中调用它:
为了做到这一点,你必须把i/o(提示用户输入)和实现斐波那契算法的函数分开,这通常是一个很好的设计实践,你可以构建两个程序(一个交互式的,一个非交互式的),或者一个程序,比如用一个参数驱动它:
我建议您打印数据,然后将标准输出重定向到一个文件。您必须向我们展示一些代码,以找出为什么您的文本输出文件功能不工作。