我有一個問題,需要我編寫一個程序來找到一對一階聯立方程的解。我必須詳盡地測試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