ユーザーは2つの等式を入力し、その繰り返しを解決します(私の英語は申し訳ありません)。ループが実行されていないという問題。 etの値がgの値より小さいときは、コードを打ち切る必要があります。誰でも私のプログラム(GAUSS SEIDEL METHOD)のループを助けることができますか?
コード:
#include <iostream>
#include<stdlib.h>
using namespace std;
long double g=0.0010;
int main()
{
long double xe,ye,et,k,x,y,x1,x2,y1,y2,c1,c2,a,b;
//for the input
cout<<"EQUATION 1:\n";
cout<<"Input your desired numerical coefficient for x:"<<endl;
cin>>x1;
cout<<"Input your desired numerical coefficient for y:"<<endl;
cin>>y1;
cout<< "Input your constant's value:"<<endl;
cin>>c1;
system("CLS");
cout<<"EQUATION 2:\n";
cout<<"Input your desired numerical coefficient for x:"<<endl;
cin>>x2;
cout<<"Input your desired numerical coefficient for y:"<<endl;
cin>>y2;
cout<< "Input your constant's value:"<<endl;
cin>>c2;
system("CLS");
//to show the equation made
cout<<"Your EQUATION 1 is:\n"<<x1<<"x + <"<<y1<<"y)"<<" = "<<c1<<endl<<endl;
cout<<"Your EQUATION 2 is:\n"<<x2<<"x + ("<<y2<<"y)"<<" = "<<c2<<endl<<endl;
//first value of x and y
x=c1/x1;
y=(c2)/y2;
//show the values
cout<<"\nx="<<x<<endl;
cout<<"y="<<y<<endl;
//this is where the iteration starts
for(k=1;g>et;k++)
{
a=(c1+y)/x1;
b=(c2-x)/y2;
xe=((a-y)/a)*-1;
ye=((b-x)/b);
et=((xe+ye)/2);
cout<<"k="<<k;
cout<<"\nx="<<a<<endl;
cout<<"y="<<b<<endl;
cout<<"\nxe="<<xe;
cout<<"\nye="<<ye;
cout<<"\net="<<et<<endl;
}
return 0;
}
etはxeとyeの平均でなければなりません。 –
@BossJeric私は変数を誤解しています...もっと空白とコメントを使用してください。この回答は更新されました。今は洞察力が必要です。 – Potatoswatter
ええ、私はいくつかのコメントを入れてみます。 –