Сформировать массив, элементы которого равны произведению соответствующих элементов двух других массивов - C (СИ)
Формулировка задачи:
Дано два массива одного размера. Сформулировать третий массив, элементы которого равны произведению соответствующих элементов начальных массивов, если они одного знака, и 0 в противном случае.
Решение задачи: «Сформировать массив, элементы которого равны произведению соответствующих элементов двух других массивов»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i, n;
scanf("%d", &n);
int *a = (int*)malloc(sizeof(int) * n);
int *b = (int*)malloc(sizeof(int) * n);
int *c = (int*)malloc(sizeof(int) * n);
for(i = 0; i < n; i++) scanf("%d", a + i);
for(i = 0; i < n; i++) scanf("%d", b + i);
for(i = 0; i < n; i++)
{
if((a[i] > 0 && b[i] > 0) || (a[i] < 0 && b[i] < 0)) c[i] = a[i] * b[i];
else c[i] = 0;
}
for(i = 0; i < n; i++) printf("%d ", c[i]);
free(a);
free(b);
free(c);
return 0;
}
Объяснение кода листинга программы
- Объявлены три переменные типа int: a, b, c.
- Введен размер массива n с помощью функции scanf.
- Выделен память под массив a с помощью функции malloc.
- Выделен память под массив b с помощью функции malloc.
- Выделен память под массив c с помощью функции malloc.
- Заполнены массивы a и b с помощью функции scanf.
- Создается цикл for для перебора элементов массива c.
- Если произведение a[i] и b[i] не равно нулю, то c[i] присваивается это произведение.
- Если произведение a[i] и b[i] равно нулю, то c[i] присваивается нулю.
- Выводится массив c с помощью функции printf.
- Освобождается память, выделенная под массив a.
- Освобождается память, выделенная под массив b.
- Освобождается память, выделенная под массив c.
- Возвращается 0, завершая работу программы.