**如果您对解释我的推理的背景信息不感兴趣,请跳到我问题结尾的最底部。
我有一组多项式方程,我需要读入我的程序来执行多项式的单元测试,例如
- 合成师
- 添加
- 减法
- 规模
- 乘法
- 根
所以我需要能够输入范围广泛的数字来测试 BRLCAD 中使用的功能,尽管我无法想出一个有效的解决方案来读取数字。我目前的做法:
给定命令行:
./unit_test sd 2 3 4 8 1 4 5
- sd - 执行合成除法
- 2 - 第一个多边形的度数
- 3,4,8 - 3x^2 + 4x + 8
- 1 - 第二个多边形的度数
编写一个算法来读取这种格式的一组数字很麻烦,而且其他人很难理解,而且我还没有实现另外两个多项式作为要比较的答案来读取。(因为这是一个开源文件,我希望我的工作有一些透明度)。
if(strcmp(argv[1],"sd") == 0){
poly_eqn1.dgr = atoi(argv[2]);
/* start at argv[3], run degree count plus one times */
for(counter = 0; counter < (eqn1.dgr + 1); counter++)
poly_eqn1.cf[counter] = atof(argv[counter+3]);
poly_eqn2.dgr = atoi(argv[4 + poly_eqn1.dgr]);
/* start at end of degree one counter */
for(counter = 0; counter < (dgr2 + 1); counter++)
poly_eqn2.cf[counter] = atof(argv[counter+5+dgr]);
/* grab the answer from end of data */
return test_synthetic(//input proper data...);
}
在设置了最大度数的情况下,使用sscanf
我的多项式读取会更有效吗?在编写了初始方法后,我考虑过使用 sscanf,但我不确定以这种方式使用它是否值得,而不是从上面再写入两个多项式读取:
给定多项式的最大次数为四
./unit_test sd 2,0,0,2,4,5 1,0,0,0,2,3
- 2,0,0,2,4,5 - 2 级,0x^4 + 0x^3 + 2x^2 + 4x + 5