Тема: Задача з масивом
Дано масив чисел а1, ...,а20. Якщо a20>0, то знайти добуток від'ємних елементів масиву. Якщо a20<=0, то знайти добуток елементів з парними номерами.
Ви не увійшли. Будь ласка, увійдіть або зареєструйтесь.
Ласкаво просимо вас на україномовний форум з програмування, веб-дизайну, SEO та всього пов'язаного з інтернетом та комп'ютерами.
Будемо вдячні, якщо ви поділитись посиланням на Replace.org.ua на інших ресурсах.
Для того щоб створювати теми та надсилати повідомлення вам потрібно Зареєструватись.
Український форум програмістів → C++ → Задача з масивом
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися
Дано масив чисел а1, ...,а20. Якщо a20>0, то знайти добуток від'ємних елементів масиву. Якщо a20<=0, то знайти добуток елементів з парними номерами.
алгоритм розв'язку: [free]
0) прочитати правила форуму
1) спробувати рішити задачу самостійно
2) показати код нам, якщо щось працює неправильно
3) послухати наші поради
4) виправити помилки
5) радіти життю
Вибір за вами.
в мене є приблизний код, але поки що рахує тільки від'ємні елементи масиву...
#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;
}Ну ви створюєте масив, котрий має 20 елементів. Після чого заповнюєте його числами у розмірі двадцяти одиниць.
При цьому починаєте з нуля. Тобто a[20] не існує. Існує лишень від a[0] до a[19]
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. невже це так важко, проста ж задачка.
Я все ж прочитав його
 if(a[20]>0)немає елемента з індексом 20.
Масиви нумеруються з 0 до n-1;
Знову ж 
if(i%2==0)Якби масиви нумерувалися з 1 тоді це було б правильно.
Як на мене мій варіант простіший. У простих задачах нічого не видумуйте і робіть те, що від вас просять.
І намагайтесь спершу розв'язати задачу математично доки це можливо. (koala)
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися