Помогите написать сложную промграмму про двумерные динамические массивы, на Си
Нужно решить 8-й вариант.
По дате
По рейтингу
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
#include <limits.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define RAND(min, max) (rand() % ((max) - (min)) + (min))
int main() {
size_t n, m;
size_t i, j;
int** matrix = NULL;
int lower, upper;
size_t count;
size_t length;
size_t pos;
srand((unsigned)time(NULL));
do {
printf("Rows: ");
scanf("%zu", &n);
matrix = (int**)malloc(n * sizeof(int*));
if (matrix != NULL) {
printf("Columns: ");
scanf("%zu", &m);
for (i = 0; i < n; ++i) {
matrix[i] = (int*)malloc(m * sizeof(int));
if (!matrix[i]) {
for (j = 0; j < i; ++j) free(matrix[j]);
free(matrix);
matrix = NULL;
}
}
}
} while (!matrix);
do {
printf("Lower bound: ");
scanf("%d", &lower);
printf("Upper bound: ");
scanf("%d", &upper);
} while (lower >= upper + 1);
++upper;
for (i = 0; i < n; ++i) {
for (j = 0; j < m; ++j) {
matrix[i][j] = RAND(lower, upper);
}
}
for (i = 0; i < n; ++i) {
for (j = 0; j < m; ++j) {
printf(" %3i", matrix[i][j]);
}
puts("");
}
length = 0;
pos = -1;
for (j = 0; j < m; ++j) {
count = 0;
for (i = 1; i < n; ++i) {
if (matrix[i][j] == matrix[i - 1][j]) ++count;
else {
if (count > length) {
length = count;
pos = j;
}
count = 0;
}
}
if (count > length) {
length = count;
pos = j;
}
if (length == m) break;
}
if (pos != -1) {
printf("Position: %zu\n", pos + 1);
for (i = 0; i < n; ++i) {
printf(" %3i", matrix[i][pos]);
}
puts("");
} else {
puts("Element series not found!");
}
for (i = 0; i < n; ++i) free(matrix[i]);
free(matrix);
}
Грязная ложка...
Больше по теме