Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //#define _CRT_SECURE_NO_WARNINGS
- #include <stdio.h>
- #include <stdlib.h>
- #include <malloc.h>
- int main()
- {
- int n, m, *matrixPtr,
- maxNaturalCounter = 0, maxMinusNaturalCounter = 0,
- tmpNaturalCounter = 0, tmpMinusNaturalCounter = 0,
- numberStrWithMaxNaturalCount = 0, numberStrWithMaxMinusNaturalCount = 0,
- tmpContainer;
- //Matrix MyMatrix; //Create a variable of "Matrix" type
- //system("chcp 1251");
- //system("cls");
- printf("Введите количество строк в матрице: ");
- scanf("%d", &m);
- printf("Введите количество столбцов в матрице: ");
- scanf("%d", &n);
- matrixPtr = malloc(sizeof(int) * m * n);
- for (int i = 0; i < m; i++)
- {
- for (int j = 0; j < n; j++)
- {
- printf("a[%d][%d] = ", i + 1, j+ 1);
- scanf("%d", (matrixPtr + i * n + j));
- if (*(matrixPtr + i * n + j) > 0)
- {
- tmpNaturalCounter++;
- }
- else if (*(matrixPtr + i * n + j) <= 0)
- {
- tmpMinusNaturalCounter++;
- }
- }
- if (tmpNaturalCounter > maxNaturalCounter)
- {
- maxNaturalCounter = tmpNaturalCounter;
- numberStrWithMaxNaturalCount = i + 1;
- }
- if (tmpMinusNaturalCounter > maxMinusNaturalCounter)
- {
- maxMinusNaturalCounter = tmpMinusNaturalCounter;
- numberStrWithMaxMinusNaturalCount = i + 1;
- }
- tmpNaturalCounter = 0;
- tmpMinusNaturalCounter = 0;
- }
- printf("\nСтрока с наибольшим числом строго положительных: %d\nСтрока с наибольшим числом отрицательных: %d", numberStrWithMaxNaturalCount, numberStrWithMaxMinusNaturalCount);
- printf("\nИсходная матрица:\n");
- for (int i = 0; i < m; i++)
- {
- for (int j = 0; j < n; j++)
- {
- printf("%5d", *(matrixPtr + i * n + j));
- }
- printf("\n");
- }
- if (numberStrWithMaxNaturalCount != 1)
- {
- for (int i = 0; i < n; i++)
- {
- tmpContainer = *(matrixPtr + i);
- *(matrixPtr + i) = *(matrixPtr + n * (numberStrWithMaxNaturalCount - 1) + i);
- *(matrixPtr + n * (numberStrWithMaxNaturalCount - 1) + i) = tmpContainer;
- }
- }
- if (numberStrWithMaxMinusNaturalCount != m)
- {
- for (int i = 0; i < n; i++)
- {
- tmpContainer = *(matrixPtr + (m - 1) * n + i);
- *(matrixPtr + (m - 1) * n + i) = *(matrixPtr + n * (numberStrWithMaxMinusNaturalCount - 1) + i);
- *(matrixPtr + n * (numberStrWithMaxMinusNaturalCount - 1) + i) = tmpContainer;
- }
- }
- printf("\nИзмененная матрица:\n");
- for (int i = 0; i < m; i++)
- {
- for (int j = 0; j < n; j++)
- {
- printf("%5d", *(matrixPtr + i * n + j));
- }
- printf("\n");
- }
- free(matrixPtr);
- scanf("&c");
- return 0;
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement