1 Востаннє редагувалося van_pvtorak (29.11.2014 23:37:46)

Тема: Задача з масивом

Дано  масив чисел а1, ...,а20. Якщо a20>0, то знайти добуток від'ємних елементів масиву. Якщо a20<=0, то знайти добуток елементів з парними номерами.

2 Востаннє редагувалося Joker (29.11.2014 23:18:04)

Re: Задача з масивом

алгоритм розв'язку: [free]
0) прочитати правила форуму
1) спробувати рішити задачу самостійно
2) показати код нам, якщо щось працює неправильно
3) послухати наші поради
4) виправити помилки
5) радіти життю

спосіб 2

Also we can solve this task without you, but you must pay for our work.

Вибір за вами.

3 Востаннє редагувалося van_pvtorak (29.11.2014 23:38:31)

Re: Задача з масивом

в мене є приблизний код, але поки що рахує тільки від'ємні елементи масиву...

#include <iostream>
#include <math.h>
#include <windows.h>
using namespace std;
int main()
{
    short int i;
    float a[20];
    for(i=0;i<20;i++){
       cout<<"a["<<i+1<<"]=";
       cin>>a[i];
    }
    if(a[20]>0){
       float D;
       D=1;
       for(i=0;i<20;i++){
           if(a[i]<0){                  
              D*=a[i];
           }
       }
       cout<<"D="<<D<<endl;
    } else {
       int P;
       P=1;
       for(i=0;i<20;i++){
       if(i%2==0)
           {
           P*=a[i];
           }
       }
       cout<<"P="<<P;
   }
    system ("pause");
    return 0;
}

4 Востаннє редагувалося FakiNyan (30.11.2014 00:00:34)

Re: Задача з масивом

Ну ви створюєте масив, котрий має 20 елементів. Після чого заповнюєте його числами у розмірі двадцяти одиниць.
При цьому починаєте з нуля. Тобто a[20] не існує. Існує лишень від a[0] до a[19]

5

Re: Задача з масивом

van_pvtorak, мені лінь читати ваш код.
Але за старання, ось вам правильний код

#include <iostream>
#include <conio.h>
using namespace std;

int main()
{
    const short int size = 20;
    double x[size];

    for (int i = 0; i < size; ++i)
        cin >> x[i];

    double product = 1;

    if (x[19] > 0)    {
        for (int i = 0; i < size; ++i)
        {
            if (x[i] < 0)
                product *= x[i];
        }

    }
    else    {
        for (int i = 1; i < size; i += 2)
            product *= x[i];
    }

    cout << "\n" << "Result = " << product << endl;
    _getch();
    return 0;
}

p.s. невже це так важко, проста ж задачка.

6 Востаннє редагувалося Joker (30.11.2014 00:16:03)

Re: Задача з масивом

Я все ж прочитав його

 if(a[20]>0)

немає елемента з індексом 20.
Масиви нумеруються з 0 до n-1;

Знову ж

if(i%2==0)

Якби масиви нумерувалися з 1 тоді це було б правильно.

Як на мене мій варіант простіший. У простих задачах нічого не видумуйте і робіть те, що від вас просять.

І намагайтесь спершу розв'язати задачу математично доки це можливо. (koala)