我有一个问题,需要我编写一个程序来找到一对一阶联立方程的解。我必须详尽地测试x和y的所有值以找到整数解。两个方程的系数A,B和C都在一个名为“input.txt”的数据文本文件中。在C++中使用嵌套循环求解1度联立方程
文本文件具有以下数据:
1 0 99
0 2 -100
下面是我的程序:
#include <stdio.h>;
#define FILENAME "input.txt"
int main() {
int A, B, C, x, y;
FILE *input;
input = fopen(FILENAME,"r");
fscanf(input,"%d%d%d", &A,&B,&C);
for(x = -100; x <= 100; x++)
for(y = -100; y <= 100; y++)
if(A*x+B*y==C){
fscanf(input,"%d%d%d", &A,&B,&C);
if(A*x+B*y==C)
printf("X=%d, Y=%d\n", x, y);
}
return 0;
}
当我编译并运行程序,我得到
X=99, Y=-50
X=100, Y=-50
显然,该程序有一些错误。他们是什么?
此外,如果我想打印一条消息,说明解决方案在范围[-100, 100]
中只能找到一次,应如何将此printf函数插入到程序中?
我正在创建一个diophantine线性方程求解器,其中的解是整数。在这种情况下使用double是没有意义的。我想问的是我的代码的问题,你可以看到输出有2组x和y,线性联立方程只能有一组x和y解。 – electroniclearner 2013-02-19 05:10:39