Посчитать произведение, сумму ,количество элементов положительных и отрицательных в массиве
Написать программы для решения следующих задач:
- Посчитать сумму всех элементов, исключая третий элемент в одномерном массиве.
- Посчитать произведение всех четных элементов массива, значение которых меньше числа в. Число в задается пользователем.
- Посчитать количество элементов положительных и отрицательных в массиве.
- Вывести первый и последний ненулевой элемент в массиве.
Код смогла написать только для первого задания, для остальных не получается. Помогите, пожалуйста !!!!
#include <stdio.h>
#include <stdlib.h>
int main()
{
// Порахувати суму всіх елементів, виключаючи третій елемент у одновимірному масиві.
int a[5] ;
for(int i = 0; i<5; i++)
{
printf ("\n a[%d] = ", i);
scanf ("%d",&a[i]);
}
int sum = 0;
int mult = 1;
for(int i = 0; i<5; i++)
{
sum += a[i];
mult *= a[i];
}
printf ("\n Array: ");
for(int i = 0; i<5; i++)
{
if (i == 2) continue;
printf ("%d", a[i]);
}
printf ("\nSum of elements: %d", sum);
printf ("\nMultiplication of elments: %d", mult);
int B[1]; //Порахувати добуток усіх парних елементів масиву, значення яких менше числа В. Число В задається користувачем.
for(int i = 0; i<1; i++)
{
printf ("\n B[%d] = ", i);
scanf ("%d",&B[i]);
}
for(int i = 0; i<1; i++)
{
int mult = 1;
if (i<B & i%2==0)
mult *= B[i];
printf ("%d", B[i]);
}
printf ("\nMultiplication of paired elments: %d", mult );
return 0;
}
Ответы (1 шт):
Автор решения: MBo
→ Ссылка
Честно говоря, сумбур какой-то написан.
Вы и сумму неверно посчитали. Вы же знаете, как использовать номер элемента, а применяете это для какого-то непонятного вывода
int sum = 0;
for(int i = 0; i<5; i++)
{
if (i != 2)
sum += a[i];
}
Число b вводится один раз
int b;
printf ("\n b = ");
scanf ("%d",&b);
И затем используется
int mult = 1;
for(int i = 0; i<5; i++)
{
if (a[i]<b && a[i]%2==0)
mult *= a[i];
}
Положительные и отрицательные вроде нетрудно подсчитать:
int nplus = 0;
int nminus = 0;
for(int i = 0; i<5; i++)
{
if (a[i]>0)
nplus++;
else if (a[i]<0)
nminus++;
}
Для ненулевых:
int nzfirst = 0;
int nzlast = 0;
for(int i = 0; i<5; i++)
{
if (a[i]){
if (nzfirst)
nzlast = a[i];
else
nzfirst = a[i];
}
}
if (nzlast==0)
nzlast = nzfirst;
Надеюсь, вывести полученные значения сможете сами