-
-
[旧帖]
ubuntu 下的程序提示exit()问题~~
0.00雪花
-
发表于:
2011-3-13 15:20
3740
-
[旧帖] ubuntu 下的程序提示exit()问题~~
0.00雪花
#include <iostream>
#include <fstream>
using namespace std;
class trmul
{
private:
int m,n,k;
double **a,**b,**c;
public:
trmul(int mm,int nn,int kk)
{
int i;
m=mm;n=nn;k=kk;
a=new double* [m];
for(i=0;i<m;i++) a[i]=new double [n];
b=new double* [n];
for(i=0;i<n;i++) a[i]=new double [k];
c=new double* [m];
for(i=0;i<m;i++) a[i]=new double [k];
}
void input();
void mul();
void output();
~trmul()
{
int i;
for(i=0;i<m;i++)
{delete[] a[i];}
delete[] a;
for(i=0;i<n;i++)
{delete[] b[i];}
delete[] b;
for(i=0;i<m;i++)
{delete[] c[i];}
delete[] c;
}
};
void trmul::input()
{
int i,j;
char strl[20];
cout<<"\n输入文件名!";
cin>>strl;
ifstream fin(strl);
if(!fin)
{
cout<<"\n不能打开这个文件!"<<strl<<endl;
exit(1);
}
for(i=0;i<m;i++)
for(j=0;j<n;j++) fin>>a[i][j];
for(i=0;i<n;i++)
for(j=0;j<k;j++) fin>>b[i][j];
fin.close();
}
void trmul::mul()
{
int i,j,t;
for(i=0;i<m;i++)
for(j=0;j<k;j++)
{
c[i][j]=0.0;
for(t=0;t<n;t++)
c[i][j]=c[i][j]+a[i][j]*b[i][j];
}
}
void trmul::output()
{
int i,j;
char str2[20];
cout<<"\n输入文件名:";
cin>>str2;
ofstream fout(str2);
if(!fout)
{
cout<<"\n不能打开文件"<<str2<<endl;
exit(1);
}
for(i=0;j<k;j++)
{
for(j=0;j<k;j++)
{
fout<<" "<<c[i][j];
cout<<" "<<c[i][j];
}
fout<<endl;
cout<<endl;
}
fout.close();
}
int main()
{
trmul c(4,5,3);
c.input();
c.mul();
c.output();
}
下面是用G++编译的 为什么会这样?
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!