Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "stdio.h" // подключение ввода, вывода
- #include "locale.h" // подключение русского языка
- #include "stdlib.h" // подключение рандома
- #include "time.h"
- #include "malloc.h"
- /*функция ввода массива с клавиатуры*/
- void vvodArray(int** a, int n, int m) {
- printf("Введите числа (%i): ", n);
- for (int i = 0; i < n; i++) {
- for (int j = 0; j < m; j++)
- scanf_s("%i", &a[i][j]);
- }
- }
- /*функция заполнения массива случайными числами*/
- void randomArray(int** a, int n, int m) {
- srand(clock());
- for (int i = 0; i < n; i++) {
- for (int j = 0; j < m; j++)
- a[i][j] = rand() % 100;
- }
- }
- /*функция вывода массива*/
- void vivodArray(int** a, int n, int m) {
- for (int i = 0; i < n; i++) {
- for (int j = 0; j < m; j++)
- printf("%i ", a[i][j]);
- printf("\n");
- }
- }
- int main()
- {
- setlocale(LC_ALL, "rus");
- int n, m;// размерность матрицы
- /*ввод размера матрицы*/
- printf("Введите размер матрицы NxM: ");
- do {
- scanf_s("%i%i", &n, &m);
- if ((n <= 0) || (m <= 0))
- printf("Повторите ввод, введите положительное число: ");
- } while ((n <= 0) || (m <= 0));
- /*выделение памяти под массив*/
- int** a = (int**)malloc(n * sizeof(int**));
- for (int x = 0; x < m; x++) {
- a[x] = (int*)malloc(m * sizeof(int*));
- }
- printf("Выберите способ ввода массива:\n1-ввод с клавиатуры\n2-заполнение массива случайными числами\n");
- /*выбор способа ввода массива*/
- int f;
- do {
- scanf_s("%i", &f);
- if ((f != 1) && (f != 2))
- printf("Введите только 1 или 2: ");
- } while ((f != 1) && (f != 2));
- if (f == 1)
- vvodArray(a, n, m);
- else
- randomArray(a, n, m);
- printf("\nИсходная матрица\n");
- vivodArray(a, n, m);
- int sum; // переменная для суммы элеметов Apq
- // будем идти с нижнего правого угла в верхней левый
- for (int i = n-1; i >= 0; i--) {
- for (int j = m-1; j >= 0; j--) {
- sum = 0; // обнуляем сумму
- // считаем сумму элементов Apq
- for (int p = 0; p <= i; p++) {
- for (int q = 0; q <= j; q++) {
- sum = sum + a[p][q];
- }
- }
- a[i][j] = sum; // заменяем переменную
- }
- }
- printf("\nГотовая матрица\n");
- vivodArray(a, n, m);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement