Дан двумерный массив размером nxn, заполненный числами. Все отрицательные элементы записать в одномерный массив - C (СИ)
Формулировка задачи:
Помогите с решением:
Дан двумерный массив размером nxn, заполненный целыми числами. Все его отрицательные элементы записать в одномерный массив.
Всем заранее большое спасибо.Решение задачи: «Дан двумерный массив размером nxn, заполненный числами. Все отрицательные элементы записать в одномерный массив»
textual
Листинг программы
#include <time.h> #include <stdlib.h> int NegativeCount(int** a, int n) { int count = 0; for (int i = 0; i < n; i++) for (int j = 0; j < n; j++) if (a[i][j] < 0) count++; return count; } int main() { int n; srand(time(NULL)); printf_s("N = "); scanf_s("%d", &n); int **a = (int **)malloc(n * sizeof(int *)); for (int i = 0; i < n; i++) { a[i] = (int *)malloc(n * sizeof(int)); for (int j = 0; j < n; j++) { a[i][j] = -10 + rand() % 20; printf("%i\t", a[i][j]); } printf("\n"); } int nb = NegativeCount(a, n), counter = 0; int *b = (int *)malloc(nb * sizeof(int *)); for (int i = 0; i < n; i++) for (int j = 0; j < n; j++) if (a[i][j] < 0) { b[counter] = a[i][j]; counter++; } printf("Array: "); for (int i = 0; i < nb; i++) printf("%i ", b[i]); getch(); return 0; }
Объяснение кода листинга программы
- Начинается с объявления функции NegativeCount, которая принимает двумерный массив a и его размер n. Функция считает количество отрицательных элементов в массиве и возвращает это число.
- В функции main, пользователь вводит размер массива n.
- Затем создается двумерный массив a размером nxn с помощью malloc.
- Внутренний цикл заполняет этот массив случайными числами от -10 до 10 с шагом 2.
- Внешний цикл выводит полученный массив на экран.
- Затем вызывается функция NegativeCount, которая считает количество отрицательных элементов в массиве a.
- С помощью malloc создается одномерный массив b, который будет содержать все отрицательные элементы из массива a.
- Внутренний цикл проходит по всем элементам массива a и если элемент отрицательный, то он копируется в массив b с помощью оператора присваивания.
- Увеличивается счетчик counter на единицу.
- Выводится на экран массив b.
- В конце программы вызывается функция getch, которая ожидает нажатия клавиши.
- Программа завершается и возвращает 0.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д