程序运行后自动关闭
肥多罗 2008-03-30 03:42:42 在VC 6.0编了个程序,在程序中编译运行没问题,打开DEBUG文件夹,打开里面的exe文件后,运行后,结果闪一下就看上去关了,getch()..system("pause")..都试过了,还是不行
以下是源码:
#include <iostream.h>
#include <math.h>
#define N 50
int GS1(int n,double matrix[N][N]){
int i;
int j;
int k;
int p;
int I;
double temp;
for(k=1;k<=n-1;k++)
{
p=fabs(matrix[k][k]); //选主元
I=k;
for(i=k+1;i<=n;i++)
{
if (p<fabs(matrix[i][k]))
{ I=i;
p=fabs(matrix[i][k]);
}//取得该列的对角线上的最大行
}
if(I!=k)
{
for(j=k;j<=n+1;j++)
{
temp=matrix[I][j];
matrix[I][j]=matrix[k][j];
matrix[k][j]=temp;
}
}//换行
if (matrix[k][k]==0) {cout<<"对角元为零,消元失败。";return 0;}
for(i=k+1;i<=n;i++)
{
matrix[i][k]=matrix[i][k]/matrix[k][k];
for (j=k+1;j<=n+1;j++)
{
matrix[i][j]=matrix[i][j]-matrix[i][k]*matrix[k][j];
}
}//消元
}
for(k=n;k>=1;k--)//回代,求解
{
temp=0;
for(i=k+1;i<=n;i++)
temp=temp+matrix[k][i]*matrix[i][n+1];
matrix[k][n+1]=(matrix[k][n+1]-temp)/matrix[k][k];
}
cout<<"该方程组的解为:"<<endl;
for(k=1;k<=n;k++)
{
cout<<"x"<<k<<"="<<matrix[k][n+1]<<" ";
}
return 0;
}
int main()
{
cout<<"Example**** x1+3*x2+2*x3=1 *****"<<endl;
cout<<"*********** x1+2*x2+3*x3=2 *****"<<endl;
cout<<"*********** x1+2*x2+4*x3=3 *****"<<endl;
cout<<"该方程组为3阶,加上b的列,共输入3行4列"<<endl;
int i;
int j;
int n;
double matrix[N][N];
cout<<"请输入所求方程组的阶数:";
cin>>n;
for (i=1;i<=n;i++) //输入矩阵
{
cout<<"输入第"<<i<<"行,每个数用空格隔开;输完一行后回车 ";
for (j=1;j<=n+1;j++)
{
cin>>matrix[i][j];
}
}
GS1(n,matrix);
return 0;
}