?? d7r8.cpp
字號(hào):
#include "iostream.h"
#include "fstream.h"
#include "stdlib.h"
#include "string.h"
#include "conio.h"
void indexx(int n, double arrin[], int indx[])
{
int i,j,l,ir,indxt;
double q;
for (j = 1; j<=n; j++)
{
indx[j] = j;
}
if (n == 1)
{
return;
}
l = int(n / 2 + 1);
ir = n;
do
{
if (l > 1)
{
l = l - 1;
indxt = indx[l];
q = arrin[indxt];
}
else
{
indxt = indx[ir];
q = arrin[indxt];
indx[ir] = indx[1];
ir = ir - 1;
if (ir == 1)
{
indx[1] = indxt;
return;
}
}
i = l;
j = l + l;
while (j <= ir)
{
if (j < ir)
{
if (arrin[indx[j]] < arrin[indx[j + 1]])
{
j = j + 1;
}
}
if (q < arrin[indx[j]])
{
indx[i] = indx[j];
i = j;
j = j + j;
}
else
{
j = ir + 1;
}
}
indx[i] = indxt;
}while(1);
}
void rank(int n, int indx[], int irank[])
{
for (int j = 1; j<=n; j++)
{
irank[indx[j]] = j;
}
}
void main()
{
//program d7r8
//driver for routine rank
double a[101], b[11];
int indx[101], irank[101];
int i,j,l,k;
ifstream fin;
fin.open("d:\\vc常用數(shù)值算法集\\data\\tarray.dat",ios::in|ios::nocreate);
if (!fin)
{
cerr<<"could not open d:\\vc常用數(shù)值算法集\\data\\tarray.dat"<<endl;
exit(1);
}
for (i=1; i<=100; i++)
{
fin>>a[i];
}
fin.close();
indexx(100, a, indx);
rank(100, indx, irank);
cout<<endl;
cout<<"Original array:"<<endl;
for (i = 1; i<=10; i++)
{
for (j = 1; j<=10; j++)
{
cout.width(7);
cout.setf(ios::left);
cout<<a[10 * (i - 1) + j];
}
cout<<endl;
}
cout<<endl;
cout<<"Table of ranks is:"<<endl;
for (i = 1; i<=10; i++)
{
for (j = 1; j<=10; j++)
{
cout.width(7);
cout.setf(ios::left);
cout<<irank[10 * (i - 1) + j];
}
cout<<endl;
}
cout<<"press any key to continue..."<<endl;
getch();
cout<<"Array sorted according to rank table:"<<endl;
for (i = 1; i<=10; i++)
{
for (j = 1; j<=10; j++)
{
k = 10 * (i - 1) + j;
for (l = 1; l<=100; l++)
{
if (irank[l] == k)
{
b[j] = a[l];
}
}
}
for (j = 1; j<=10; j++)
{
cout.width(7);
cout.setf(ios::left);
cout<<b[j];
}
cout<<endl;
}
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -