?? d7r10.cpp
字號:
#include "iostream.h"
void eclass(int nf[], int n, int lista[], int listb[], int m)
{
int k,l,j;
for (k = 1; k<=n; k++)
{
nf[k] = k;
}
for (l = 1; l<=m; l++)
{
j = lista[l];
while (nf[j] != j)
{
j = nf[j];
}
k = listb[l];
while (nf[k] != k)
{
k = nf[k];
}
if (j != k)
{
nf[j] = k;
}
}
for (j = 1; j<=n; j++)
{
while (nf[j] != nf[nf[j]])
{
nf[j] = nf[nf[j]];
}
}
}
void main()
{
//program d7r10
//driver for routine eclass
int i,j,n = 15; int m = 11;
int lista[12], listb[12], nf[16], nflag[16], nsav[16];
lista[1] = 1; lista[2] = 1; lista[3] = 5; lista[4] = 2;
lista[5] = 6; lista[6] = 2; lista[7] = 7; lista[8] = 11;
lista[9] = 3; lista[10] = 4; lista[11] = 12;
listb[1] = 5; listb[2] = 9; listb[3] = 13; listb[4] = 6;
listb[5] = 10; listb[6] = 14; listb[7] = 3; listb[8] = 7;
listb[9] = 15; listb[10] = 8; listb[11] = 4;
eclass(nf, n, lista, listb, m);
cout.setf(ios::right);
for (i = 1; i<=n; i++)
{
nflag[i] = 1;
}
cout<<endl;
cout<<"Numbers from 1-15 divided according to"<<endl;
cout<<endl;
cout<<"their value modulo 4:"<<endl;
cout<<endl;
int k,nclass,lclas = 0;
for (i = 1; i<=n; i++)
{
nclass = nf[i];
if (nflag[nclass] != 0)
{
nflag[nclass] = 0;
lclas = lclas + 1;
k = 0;
for (j = 1; j<=n; j++)
{
if (nf[j] == nf[i])
{
k = k + 1;
nsav[k] = j;
}
}
cout<<"Class"<<lclas<<":"<<" ";
for (j = 1; j<=k; j++)
{
cout.width(4);
cout<<nsav[j];
}
cout<<endl;
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -