#include
#include
#include
#define N 5
void generateMatrix(int matrix[N][N]);
void printMatrix(int matrix[N][N]);
void findMaxNegative(int matrix[N][N], int *maxNeg, int *rowIndex, int *colIndex);
int countMaxOccurrences(int matrix[N][N], int max);
int main() {
int matrix[N][N];
int maxNegative, rowIndex, colIndex;
int maxValue, maxCount;
generateMatrix(matrix);
printMatrix(matrix);
findMaxNegative(matrix, &maxNegative, &rowIndex, &colIndex);
if (rowIndex != -1 && colIndex != -1) {
printf("\nMaximum negative number is %d at position (%d, %d)\n", maxNegative, rowIndex, colIndex);
} else {
printf("\nNo negative numbers found in the matrix.\n");
}
maxValue = matrix[0][0];
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
if (matrix[i][j] > maxValue) {
maxValue = matrix[i][j];
}
}
}
maxCount = countMaxOccurrences(matrix, maxValue);
printf("The maximum number %d occurs %d times in the matrix.\n", maxValue, maxCount);
return 0;
}
void generateMatrix(int matrix[N][N]) {
srand(time(NULL));
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
matrix[i][j] = rand() % 21 - 10;
}
}
}
void printMatrix(int matrix[N][N]) {
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
printf("%4d", matrix[i][j]);
}
printf("\n");
}
}
void findMaxNegative(int matrix[N][N], int *maxNeg, int *rowIndex, int *colIndex) {
*maxNeg = -2147483647;
*rowIndex = -1;
*colIndex = -1;
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
if (matrix[i][j] < 0 && matrix[i][j] > *maxNeg) {
*maxNeg = matrix[i][j];
*rowIndex = i;
*colIndex = j;
}
}
}
}
int countMaxOccurrences(int matrix[N][N], int max) {
int count = 0;
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
if (matrix[i][j] == max) {
count++;
}
}
}
return count;
}
#include
#include
#include
#include
#define BUFFER (size_t)0x40
#define RAND(min, max) (rand() % ((max) - (min)) + (min))
typedef struct {
int max_negative_value;
size_t position;
} Data;
int matrix[BUFFER][BUFFER] = { 0 };
size_t N = 0;
size_t set_rank(void) {
while (!N || BUFFER < N) {
printf("Set N: ");
scanf("%zu", &N);
}
}
Data max_negative_element_position(void) {
size_t i, j;
Data data;
data.position = 0;
data.max_negative_value = INT_MIN;
size_t position = 0;
for (i = 0; i < N; ++i) {
for (j = 0; j < N; ++j) {
++position;
if (matrix[i][j] < 0 && data.max_negative_value < matrix[i][j]) {
data.max_negative_value = matrix[i][j];
data.position = position;
}
if (data.max_negative_value == -1) break;
}
if (data.max_negative_value == -1) break;
}
return data;
}
int max_element(void) {
size_t i, j;
int value = INT_MIN;
for (i = 0; i < N; ++i) {
for (j = 0; j < N; ++j) {
if (value < matrix[i][j]) {
value = matrix[i][j];
}
}
}
return value;
}
size_t count(int value) {
size_t i, j;
size_t quantity = 0;
for (i = 0; i < N; ++i) {
for (j = 0; j < N; ++j) {
if (matrix[i][j] == value) {
++quantity;
}
}
}
return quantity;
}
void swap(int* a, int* b) {
int t = *a;
*a = *b;
*b = t;
}
void create_matrix(int a, int b) {
size_t i, j;
if (b < a) swap(&a, &b);
srand((unsigned)time(NULL));
for (i = 0; i < N; ++i) {
for (j = 0; j < N; ++j) {
matrix[i][j] = RAND(a, b);
}
}
}
void show_matrix(int width) {
size_t i, j;
for (i = 0; i < N; ++i) {
for (j = 0; j < N; ++j) {
printf(" %*d ", width, matrix[i][j]);
}
puts("");
}
puts("");
}
int main(void) {
int a, b, max;
Data data;
size_t quantity;
set_rank();
create_matrix(-10, 11);
show_matrix(5);
data = max_negative_element_position();
printf("Value: %d\nPosition: %zu\n", data.max_negative_value, data.position);
max = max_element();
printf("Max element: %d\n", max);
quantity = count(max);
printf("Count max elements: %zu\n", quantity);
return 0;
}
#include
void f() {}
int main(void) {
f("Hello World", 25.7, 42, 'x', 13LL);
return 0;
}
Это работает и в большом проекте не всегда можно уследить, почему передача различных аргументов в функцию никак не отражается на результатах алгоритма. Ошибка заключается в том, что разработчик просматривает не тот заголовочный файл, в котором объявлена его функция в точке вызова.
- сформировать матрицу А(NхN);
-вывести на экран значения матрицы, расположив каждую строку матрицы на строку экрана;
- найти в матрице максимальное отрицательное число и его порядковый номер;
- определить, сколько в матрице чисел, равных максимальному.
Написать функцию (main), вызывающую разработанные вами функции.