Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.73
Маринчик
0 / 0 / 0
Регистрация: 12.10.2012
Сообщений: 142
#1

Найти произведение положительных элементов массива А - C++

13.10.2012, 18:47. Просмотров 1461. Ответов 10
Метки нет (Все метки)

Нужно:
1) Найти произведение положительных элементов массива А.
2) Элементы массива В разместить в обратном порядке в массиве Р.
Исходные данные :A (10), B (20).
Значения элементов исходных массивов задавать произвольно.Отсортировать массив А обменом по убыванию.


Работаю в MS Visual C++ 2010.Программу составила.Вроде правильно все по условию сделала.Но запускается окошко построения и тут же выходит из него.Непойму что не так.

воть:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include "stdafx.h"
#include<stdio.h>
#include<stdlib.h>
 
void main()
{double a[10],b[20],p[20],pr,m;
 int i,d,n=10,k=20,j,l=20;
 for (i=0;i<n;i++)
 {a[i]=0.00001*rand();        /*vvod massiva sluchajnix chisel a*/
 printf("\n%f",a[i]);
  for (i=0;i<n-1;i++)
    {for (d=0;d<n-1;d++)
     pr=1;
        while (a[d]>0) pr=pr*a[d];
         if (a[d+1]<a[d])
        {m=a[d+1];               /*sortirovka massiva obmenom po ybuvanijy*/
         a[d+1]=a[d];
         a[d]=m;}
         printf("\n%f",a[d]);
        }   
  for(j=0;j<k;j++)
 { b[j]=0.00001*rand();       /*vvod massiva sluchajnix chisel b*/
  printf("\n%f",b[j]);
 }
 for (j=k;j>0;j--) 
     printf("\n%f",b[j]);          /* obratnij porjadok massiva b */
     for (l=0;l<20;l++)
    { p[l]=b[j];          /* massiv p,obratij b*/
     printf("\n%f",p[l]);
    }
 }
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.10.2012, 18:47
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Найти произведение положительных элементов массива А (C++):

Найти произведение положительных элементов массива - C++
Самым самым простым способом, так сказать для начинающих чайников.

Найти произведение положительных элементов массива - C++
Подскажите, пожалуйста, оформить задачки: 1. Дан массив из N элементов (вещественные числа). Вычислить: 1) произведение...

Найти произведение положительных элементов массива - C++
Написать программу на с++ В одномерном массиве, который состаит из n вещественных элементов, вычислить: 1) произведение...

Найти произведение положительных элементов массива - C++
Не могу вывести произведение положительных элементов массива скажите пожалуйста в чем ошибка? #include &quot;stdafx.h&quot; #include &lt;iostream&gt; ...

Найти произведение отрицательных элементов массива и сумму положительных элементов, удовлетворяющих условию - C++
Добрый вечер, не могли вы помочь с решением вот этих двух задач ? Задача 1. В одномерном массиве, состоящем из n вещественных...

Найти сумму положительных элементов массива и произведение ненулевых элементов, стоящих на нечётных местах - C++
Хеелп!!! Пожалуйста) Нужно создать прогу ... Масив который состоит из n чисел и находит суму + елементов масива и * всех не нулевых...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
alsav22
5420 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
13.10.2012, 18:50 #2
В конце поставьте, чтобы окно не закрывалось:
C++
1
system("pause");
1
ValeryS
Модератор
6633 / 5040 / 466
Регистрация: 14.02.2011
Сообщений: 16,850
13.10.2012, 18:52 #3
Цитата Сообщение от Маринчик Посмотреть сообщение
Найти произведение положительных элементов массива А.
C++
1
2
3
4
int res=1;
for(int i=0;i<10;i++)
  if(A[i]>0)
    res*=A[i];
Цитата Сообщение от Маринчик Посмотреть сообщение
2) Элементы массива В разместить в обратном порядке в массиве Р.
C++
1
2
for(int i=0;i<20;i++)
   P[i]=B[20-1-i];
1
alsav22
5420 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
13.10.2012, 19:00 #4
Теперь разбирайтесь.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include "stdafx.h"
#include<stdio.h>
#include<stdlib.h>
 
int main()
{
double a[10], b[20], p[20], pr, m;
int i, d, n = 10, k = 20, j, l = 20;
 
for (i = 0; i < n; i++)
{
    a[i] = 0.00001 * rand(); /*vvod massiva sluchajnix chisel a*/
    printf("\n%f", a[i]);
    for (i = 0; i < n-1; i++)
    {
        for (d = 0; d < n - 1; d++)
            pr = 1;
        
        while (a[d] > 0) pr = pr * a[d];
        
        if (a[d + 1] < a[d])
        {
            m = a[d + 1]; /*sortirovka massiva obmenom po ybuvanijy*/
            a[d + 1] = a[d];
            a[d] = m;
        }
        printf("\n%f", a[d]);
    } 
    
    for(j = 0; j < k; j++)
    { 
        b[j] = 0.00001 * rand(); /*vvod massiva sluchajnix chisel b*/
        printf("\n%f", b[j]);
    }
    
    for (j = k; j > 0; j--) 
        printf("\n%f", b[j]); /* obratnij porjadok massiva b */
    
    for (l = 0; l < 20; l++)
    { 
        p[l] = b[j]; /* massiv p,obratij b*/
        printf("\n%f", p[l]);
    }
}
 
system("pause");
return 0;
}
1
Маринчик
0 / 0 / 0
Регистрация: 12.10.2012
Сообщений: 142
13.10.2012, 19:14  [ТС] #5
спасибовсе получилось
0
alsav22
5420 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
13.10.2012, 19:19 #6
Цитата Сообщение от Маринчик Посмотреть сообщение
спасибовсе получилось
Это хорошо. А что этот цикл делает?
C++
1
2
for (d = 0; d < n - 1; d++)
    pr = 1;
0
Маринчик
0 / 0 / 0
Регистрация: 12.10.2012
Сообщений: 142
13.10.2012, 20:06  [ТС] #7
Цитата Сообщение от alsav22 Посмотреть сообщение
Это хорошо. А что этот цикл делает?
C++
1
2
for (d = 0; d < n - 1; d++)
    pr = 1;
это я чтото нагородила. там и одного первого цикла достаточно по идее.А вообще ищем произведение положительных элементов массива А
0
Маринчик
0 / 0 / 0
Регистрация: 12.10.2012
Сообщений: 142
30.10.2012, 02:57  [ТС] #8
сначала не запускалось окошко - теперь выводится, но через секунд 10 выбивает окошко "Прекращена работа программы зад3.exe. Windows осуществляет поиск способа устранения этой ошибки"
Изза чего это может быть??????????????????????????
0
valeriikozlov
Эксперт C++
4670 / 2496 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
30.10.2012, 05:01 #9
Цитата Сообщение от Маринчик Посмотреть сообщение
сначала не запускалось окошко - теперь выводится, но через секунд 10 выбивает окошко "Прекращена работа программы зад3.exe. Windows осуществляет поиск способа устранения этой ошибки"
см комментарии:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include "stdafx.h"
#include<stdio.h>
#include<stdlib.h>
 
int main()
{
double a[10], b[20], p[20], pr, m;
int i, d, n = 10, k = 20, j, l = 20;
 
for (i = 0; i < n; i++)
{
    a[i] = 0.00001 * rand(); /*vvod massiva sluchajnix chisel a*/
    printf("\n%f", a[i]);
    for (i = 0; i < n-1; i++)
    {
        for (d = 0; d < n - 1; d++)
            pr = 1;
        
        while (a[d] > 0) pr = pr * a[d];// Вот здесь d равно n-1. Но пока суть не в этом, если значение a[n-1] больше 0, то цикл в этой строке бесконечный
        
        if (a[d + 1] < a[d])//вот здесь и ниже, при обращении к a[d+1] - выход за границы массива
        {
            m = a[d + 1]; /*sortirovka massiva obmenom po ybuvanijy*/
            a[d + 1] = a[d];
            a[d] = m;
        }
        printf("\n%f", a[d]);
    } 
    
    for(j = 0; j < k; j++)
    { 
        b[j] = 0.00001 * rand(); /*vvod massiva sluchajnix chisel b*/
        printf("\n%f", b[j]);
    }
    
    for (j = k; j > 0; j--) 
        printf("\n%f", b[j]); /* obratnij porjadok massiva b */
    
    for (l = 0; l < 20; l++)
    { 
        p[l] = b[j]; /* massiv p,obratij b*/
        printf("\n%f", p[l]);
    }
}
 
system("pause");
return 0;
}
1
salam
163 / 144 / 12
Регистрация: 10.07.2012
Сообщений: 728
30.10.2012, 08:35 #10
Цитата Сообщение от Маринчик Посмотреть сообщение
зад3.exe
это гениально...)
0
Маринчик
0 / 0 / 0
Регистрация: 12.10.2012
Сообщений: 142
30.10.2012, 18:00  [ТС] #11
Цитата Сообщение от salam Посмотреть сообщение
это гениально...)
все гениальное просто
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.10.2012, 18:00
Привет! Вот еще темы с ответами:

Массив: Найти произведение положительных элементов массива - C++
Задан массив вещественных чисел A(n). Найти произведение положительных элементов массива; сумму отрицательных чисел, расположенных после...

Найти произведение положительных/отрицательных элементов массива - C++
нужно написать маленькие проги)такие как.. 1)среднее арифм. +/- элементов в одномер.массиве 2)минимальный/максимальный элемент +/-...

Найти сумму неотрицательных и произведение положительных элементов массива - C++
Мужики подскажите как написать пожалуйста!!! Составить программу, использующую для хранения значений одномерный массив: const N=10; ...

Найти количество отрицательных и произведение положительных элементов массива - C++
Найти количество отрицательных и произведение положительных элементов массива.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
30.10.2012, 18:00
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru