📄 d9r3.cpp
字号:
#include "iostream.h"
void covsrt(double covar[], int ncvm, int ma, int lista[], int mfit)
{
int i,j;
double swap;
for (j = 1; j<=ma - 1; j++)
{
for (i = j + 1; i<=ma; i++)
{
covar[(i-1)*ma+j] = 0.0;
}
}
for (i = 1; i<=mfit - 1; i++)
{
for (j = i + 1; j<=mfit; j++)
{
if (lista[j] > lista[i])
{
covar[(lista[j]-1)*ma+lista[i]] = covar[(i-1)*ma+j];
}
else
{
covar[(lista[i]-1)*ma+lista[j]] = covar[(i-1)*ma+j];
}
}
}
swap = covar[1];;
for (j = 1; j<=ma; j++)
{
covar[j] = covar[(j-1)*ma+j];
covar[(j-1)*ma+j] = 0.0;
}
covar[(lista[1]-1)*ma+lista[1]] = swap;
for (j = 2; j<=mfit; j++)
{
covar[(lista[j]-1)*ma+lista[j]] = covar[j];
}
for (j = 2; j<=ma; j++)
{
for (i = 1; i<=j - 1; i++)
{
covar[(i-1)*ma+j] = covar[(j-1)*ma+i];
}
}
}
void main()
{
//program d9r3
//driver for routine covsrt
int i,j,ma = 10;
int mfit = 5;
double covar[101];
int lista[6];
for (i = 1; i<=ma; i++)
{
for (j = 1; j<=ma; j++)
{
covar[(i-1)*ma+j] = 0.0;
if (i <= 5 && j <= 5)
{
covar[(i-1)*ma+j] = i + j - 1;
}
}
}
cout<<"Original matrix"<<endl;
for (i = 1; i<=ma; i++)
{
for (j = 1; j<=ma; j++)
{
cout<<covar[(i-1)*ma+j]<<" ";
}
cout<<endl;
}
//test 1 - spread by 2
cout<<"test #1 - spread by two"<<endl;
for (i = 1; i<=mfit; i++)
{
lista[i] = 2 * i;
}
covsrt(covar, ma, ma, lista, mfit);
for (i = 1; i<=ma; i++)
{
for (j = 1; j<=ma; j++)
{
cout<<covar[(i-1)*ma+j]<<" ";
}
cout<<endl;
}
//test 2 - reverse
cout<<"test #2 - reverse"<<endl;
for (i = 1; i<=ma; i++)
{
for (j = 1; j<=ma; j++)
{
covar[(i-1)*ma+j] = 0.0;
if (i <= 5 && j <= 5)
{
covar[(i-1)*ma+j] = i + j - 1;
}
}
}
for (i = 1; i<=mfit; i++)
{
lista[i] = mfit + 1 - i;
}
covsrt(covar, ma, ma, lista, mfit);
for (i = 1; i<=ma; i++)
{
for (j = 1; j<=ma; j++)
{
cout<<covar[(i-1)*ma+j]<<" ";
}
cout<<endl;
}
//test 3 - spread and reverse
cout<<"test #3 - spread and reverse"<<endl;
for (i = 1; i<=ma; i++)
{
for (j = 1; j<=ma; j++)
{
covar[(i-1)*ma+j] = 0.0;
if (i <= 5 && j <= 5)
{
covar[(i-1)*ma+j] = i + j - 1;
}
}
}
for (i = 1; i<=mfit; i++)
{
lista[i] = ma + 2 - 2 * i;
}
covsrt(covar, ma, ma, lista, mfit);
for (i = 1; i<=ma; i++)
{
for (j = 1; j<=ma; j++)
{
cout<<covar[(i-1)*ma+j]<<" ";
}
cout<<endl;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -