24 апреля 2016 г.

Дан двумерный массив размерностью 5х5, заполненный случайными числами из диапазона от 0 до 100. Переформировать массив таким образом, чтобы её столбцы располагались по убыванию их поэлементных сумм.

void InitAr(int A[][5],int size) {

for (size_t i = 0; i < size; i++) {
for (size_t j = 0; j < size; j++) {
A[i][j] = rand() % 100;
}
}

}




void ShowAr(int A[][5], int size) {

for (size_t i = 0; i < size; i++) {
for (size_t j = 0; j < size; j++) {
cout.width(3);
cout << A[i][j];
}
cout << endl;
}

}




void SummElem(int A[][5], int size, int S[]) {

for (size_t i = 0; i < size; i++)
for (size_t j = 0; j < size; j++)
S[j] += A[i][j];

}




void ShowSummElem(int S[], int size) {

for (size_t i = 0; i < size; i++) {
cout.width(4);
cout << S[i];
}
cout << endl << endl;

}




void ChangeColumns(int A[][5], int size, int x1,int x2) {

for (size_t i = 0; i < size; i++) {
for (size_t j = 0; j < size; j++) {
int tmp = A[i][x1];
A[i][x1] = A[i][x2];
A[i][x2] = tmp;
}
}

}




void SortArray(int A[][5], int size,int S[]) {

int tmp;
for (int i = 0; i < size; i++) {
for (int j = 1; j < size - i; j++) {
if (S[j - 1] > S[j]) {
tmp = S[j];
S[j] = S[j - 1];
S[j - 1] = tmp;
ChangeColumns(A, size, j, j-1);
}
}
}

}




void main() {

srand(time(0));
const int size = 5;
int A[size][size]{};
InitAr(A, size);
ShowAr(A, size);
int SUMM[size]{};
SummElem(A, size, SUMM);
ShowSummElem(SUMM,size);
SortArray(A, size, SUMM);
ShowAr(A, size);
system("pause");

}

Комментариев нет:

Отправить комментарий