#include <iostream>
#include <locale>
#include <string>
using namespace std;
class matriss {
public:
int matris[10][10];
int olustur();
int elemanKontrol(int deger1, int c, int v);
void matrisYaz(int matris2[10][10]);
void sirala();
int randcagirma = 0;
}m1;
void main() {
setlocale(LC_ALL, "turkish");
m1.olustur();
cout << "Rand fonksiyon'unun çağırılma sayısı: " << m1.olustur() << endl;
m1.matrisYaz(m1.matris);
m1.sirala();
cout << endl << "Sıralanmış matris:" << endl;
m1.matrisYaz(m1.matris);
cout << endl;
system("pause");
}
void matriss::sirala() {
int i, j, k;
for (i = 0; i<10; i++)
for (j = 0; j<9; j++)
for (k = j + 1; k<10; k++)
if (matris[j]<matris[k])
{
int bos = matris[j];
matris[j] = matris[k];
matris[k] = bos;
}
}
int matriss :: olustur() {
for (int i = 0; i < 10; i++) {
for (int m = 0; m < 10; m++) {
m1.matris[m] = rand() % 100;
m1.randcagirma++;
int deger = m1.matris[m];
do {
elemanKontrol(deger, i + 1, m + 1);
if (elemanKontrol(deger, i + 1, m + 1) == 0) {
m1.matris[m] = rand() % 100;
randcagirma++;
}
} while (elemanKontrol(deger, i + 1, m + 1) == 1);
}
}
return randcagirma;
}
int matriss :: elemanKontrol(int deger1, int c, int v) {
for (int j = 0; j < c; j++) {
for (int l = 0; l < v; l++) {
if (j == c - 1 && l == v - 1)
return true;
if (deger1 == m1.matris[j][l])
return false;
}
}
}
void matriss::matrisYaz(int matris2[10][10]) {
for (int i = 0; i < 10; i++) {
if (i != 0) {
cout << endl;
}
for (int l = 0; l < 10; l++) {
cout << matris2[l] << " ";
}
}