
C/C++
Помогите с экзаменационной задачей пожалуйста
Задание на C/C++

Это в каком классе такое?
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#include <math.h>
#define RAND(min, max) (rand() % ((max) - (min)) + (min))
size_t length(const char* msg) {
size_t value;
do {
printf("%s", msg);
scanf("%zu", &value);
} while (!value);
return value;
}
int** create(int** matrix, size_t rows, size_t cols) {
size_t i = 0;
matrix = (int**)malloc(rows * sizeof(int*));
for (; i < rows; ++i) matrix[i] = (int*)malloc(cols * sizeof(int));
return matrix;
}
int** destroy(int** matrix, size_t rows) {
size_t i = 0;
for (; i < rows; ++i) free(matrix[i]);
free(matrix);
return NULL;
}
void swap(int* pa, int* pb) {
int tmp = *pa;
*pa = *pb;
*pb = tmp;
}
void fill(int** matrix, size_t rows, size_t cols, int a, int b) {
size_t i = 0, j;
if (a > b) swap(&a, &b);
for (; i < rows; ++i) for (j = 0; j < cols; ++j) matrix[i][j] = RAND(a, b);
}
void show(int** matrix, size_t rows, size_t cols, int width) {
size_t i = 0, j;
for (; i < rows; ++i) {
for (j = 0; j < cols; ++j) printf("%*i", width, matrix[i][j]);
puts("");
}
}
void moving_up(int** matrix, size_t rows, size_t cols) {
size_t i, j = 0;
for (; j < cols; ++j) {
i = 0;
int* pmax = &matrix[i][j];
for (++i; i < rows; ++i) {
if (fabs(*pmax) < fabs(matrix[i][j])) pmax = &matrix[i][j];
}
if (pmax != &matrix[0][j]) swap(pmax, &matrix[0][j]);
}
}
double average(int* row, size_t length) {
double sum = 0.0;
size_t i = 0;
for (; i < length; ++i) sum += row[i];
return sum / length;
}
int main(void) {
int** matrix = NULL;
size_t rows = length("Rows: ");
size_t cols = length("Columns: ");
double avg = 0.0;
matrix = create(matrix, rows, cols);
fill(matrix, rows, cols, -99, 100);
show(matrix, rows, cols, 5);
puts("------------");
moving_up(matrix, rows, cols);
show(matrix, rows, cols, 5);
puts("------------");
avg = average(matrix[0], cols);
printf("%.4lf\n", avg);
matrix = destroy(matrix, rows);
return 0;
}
#include <stdio.h>
#include <time.h>
#include <math.h>
#define RAND(min, max) (rand() % ((max) - (min)) + (min))
size_t length(const char* msg) {
size_t value;
do {
printf("%s", msg);
scanf("%zu", &value);
} while (!value);
return value;
}
int** create(int** matrix, size_t rows, size_t cols) {
size_t i = 0;
matrix = (int**)malloc(rows * sizeof(int*));
for (; i < rows; ++i) matrix[i] = (int*)malloc(cols * sizeof(int));
return matrix;
}
int** destroy(int** matrix, size_t rows) {
size_t i = 0;
for (; i < rows; ++i) free(matrix[i]);
free(matrix);
return NULL;
}
void swap(int* pa, int* pb) {
int tmp = *pa;
*pa = *pb;
*pb = tmp;
}
void fill(int** matrix, size_t rows, size_t cols, int a, int b) {
size_t i = 0, j;
if (a > b) swap(&a, &b);
for (; i < rows; ++i) for (j = 0; j < cols; ++j) matrix[i][j] = RAND(a, b);
}
void show(int** matrix, size_t rows, size_t cols, int width) {
size_t i = 0, j;
for (; i < rows; ++i) {
for (j = 0; j < cols; ++j) printf("%*i", width, matrix[i][j]);
puts("");
}
}
void moving_up(int** matrix, size_t rows, size_t cols) {
size_t i, j = 0;
for (; j < cols; ++j) {
i = 0;
int* pmax = &matrix[i][j];
for (++i; i < rows; ++i) {
if (fabs(*pmax) < fabs(matrix[i][j])) pmax = &matrix[i][j];
}
if (pmax != &matrix[0][j]) swap(pmax, &matrix[0][j]);
}
}
double average(int* row, size_t length) {
double sum = 0.0;
size_t i = 0;
for (; i < length; ++i) sum += row[i];
return sum / length;
}
int main(void) {
int** matrix = NULL;
size_t rows = length("Rows: ");
size_t cols = length("Columns: ");
double avg = 0.0;
matrix = create(matrix, rows, cols);
fill(matrix, rows, cols, -99, 100);
show(matrix, rows, cols, 5);
puts("------------");
moving_up(matrix, rows, cols);
show(matrix, rows, cols, 5);
puts("------------");
avg = average(matrix[0], cols);
printf("%.4lf\n", avg);
matrix = destroy(matrix, rows);
return 0;
}
Похожие вопросы
- Нужна помощь с выполнением заданий в C++
- Помогите решить задание на c++
- Задание на C++. Помощь с кодом.
- Задание по C++
- 24 задание егэ, C++
- Помощь с заданием на c++
- Помогите решить задание на C++
- Информатика задание по c++
- Помогите понять суть задания на C++, написать программу с такой задачей:
- Задание по программированию c++, буду благодарен помощи