Задан одномерный массив А(N) (N

0 голосов
69 просмотров

Задан одномерный массив А(N) (N<=60). Найти сумму положительных элементов и произведение отрицательных массива. Если сумма больше произведения, найти максимальный элемент массива, а если нет – выдать об этом сообщение


Информатика (12 баллов) | 69 просмотров
Дан 1 ответ
0 голосов

Создаёшь массив, заполняешь его, считаешь сумму и произведение, и обрабатываешь условие:


#include

#include

#include

#include

#define RANDOM_MIN -9

#define RANDOM_MAX 9

int main(void) {

srand(time(NULL)); /* for "visible" random */

 

int N;

scanf("%d", &N);

 

int *A = malloc(sizeof(int) * N);

int sum = 0;

int prd = 1;

 

printf("elements: ");

 

int i;

for (i = 0; i < N; i++) {

 A[i] = RANDOM_MIN + rand() % (RANDOM_MAX + abs(RANDOM_MIN) + 1);

 

 printf("%d ", A[i]);

 

 if (A[i] > 0) {

 sum += A[i];  

 }else if (A[i] < 0) {

 prd *= A[i];

 }

}

 

printf("\n");

printf("summa: %d\n", sum);

printf("product: %d\n", prd);

 

if (sum > prd) {

 int max = A[0];

 

 for (i = (0 + 1); i < N; i++) {

 if (max < A[i]) {

   max = A[i];

 }

 }

 

 printf("max element is: %d", max);

} else {

 printf("product higher than summa");

}

 

getch();

free (A);

return 0;

}

(50 баллов)