Тема: Задача з масивом
Дано масив чисел а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
Для відправлення відповіді ви повинні увійти або зареєструватися