iomanipのincludeでエラーが出る
Posted: 2014年7月13日(日) 12:55
以下のプログラムを書いたのですがエラーがでてしまうので質問します。
コンパイルしようとすると、以下の様なエラー文が出てきてしまうのですが何故でしょうか。。。orz
#include <iostream>
#include <iomanip.h>
#include <math.h>
const int N=3; /* 変数の数 */
const double tol=1e-10; //収束を判定する小さい数
const int itr=100; //最大の反復回数
/* ユーザー定義の型Matrixの定義 */
typedef double Matrix[N+1][N+1];
/* ユーザー定義の型Vectorの定義 */
typedef double Vector[N+1];
//反復法で収束する十文条件を用いた判定
int hantei(Matrix a, int n){
Vector m;
for ( int i=1; i<=n ; i++ ){
m[i]=0.0;
for ( int j=1; j<=n; j++ )
if ( i != j )
m[i] += fabs(a[i][j]);
m[i] /= fabs(a[i][i]);
}
double max=m[1];
for ( int i=2;i<=n; i++ )
if ( max < m[i] )
max = m[i];
if ( max < 1 )
return 1;
else
return 0;
}
int syusoku(Vector x, Vector xo, int n){
int i=1;
while ( i<=n && fabs(x[i] - xo[i] ) < tol){
i++;
}
return ((i>n ) ? 1 : 0 );
}
int main( void ){
Matrix a;
Vector b,x,xo;
int i,j;
cerr << "変数の数は" << N << "です\n";
for (i=1;i<=N;i++) //係数行列の読み込み
for (j=1;j<=N;j++) cin >> a[i][j];
for (i=1;i<=N;i++) cin >> b[i]; //定数ベクトルの読み込み
for (i=1;i<=N;i++) x[i]=0.0; //初期値を0に設定
if ( hantei(a,N)==0 ) cerr << "収束は否定的です\n"; //計算可能かどうかの十文条件を判定
int k=0;
do{
for (i=1; i<=N; i++) xo[i] = x[i]; // xoにxをコピー
for (i=1; i<=N; i++) {
x[i]=b[i];
for( j=1; j<=N; j++)
if ( j != i ) x[i] -= a[i][j]*x[j];
x[i] /= a[i][i];
}
k++;
}while( k< itr && syusoku(x,xo,N)==0 );
if ( k < itr ){
cout << "loop:" << k << "回\n";
/* 解の表示 */
for (i=1;i<=N;i++)
cout << "x_" << i << "=" << setw(8) << x[i] << "\n";
}
else{
cout << "収束しませんでした。\n";
}
return 0;
}