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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.73
Маринчик
 Аватар для Маринчик
0 / 0 / 0
Регистрация: 12.10.2012
Сообщений: 123
13.10.2012, 18:47     Найти произведение положительных элементов массива А #1
Нужно:
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]);
    }
 }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.10.2012, 18:47     Найти произведение положительных элементов массива А
Посмотрите здесь:

C++ Найти произведение положительных элементов массива
Найти количество и произведение положительных элементов массива, имеющих нечетный индекс C++
C++ Среднее арифметическое положительных элементов массива, произведение и кол-во отрицательных элементов
Найти сумму отрицательных элементов массива и произведение положительных C++
Найти сумму и произведение положительных элементов массива, расположенных до максимального элемента C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
13.10.2012, 18:50     Найти произведение положительных элементов массива А #2
В конце поставьте, чтобы окно не закрывалось:
C++
1
system("pause");
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,056
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];
alsav22
5282 / 4801 / 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;
}
Маринчик
 Аватар для Маринчик
0 / 0 / 0
Регистрация: 12.10.2012
Сообщений: 123
13.10.2012, 19:14  [ТС]     Найти произведение положительных элементов массива А #5
спасибовсе получилось
alsav22
5282 / 4801 / 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
Регистрация: 12.10.2012
Сообщений: 123
13.10.2012, 20:06  [ТС]     Найти произведение положительных элементов массива А #7
Цитата Сообщение от alsav22 Посмотреть сообщение
Это хорошо. А что этот цикл делает?
C++
1
2
for (d = 0; d < n - 1; d++)
    pr = 1;
это я чтото нагородила. там и одного первого цикла достаточно по идее.А вообще ищем произведение положительных элементов массива А
Маринчик
 Аватар для Маринчик
0 / 0 / 0
Регистрация: 12.10.2012
Сообщений: 123
30.10.2012, 02:57  [ТС]     Найти произведение положительных элементов массива А #8
сначала не запускалось окошко - теперь выводится, но через секунд 10 выбивает окошко "Прекращена работа программы зад3.exe. Windows осуществляет поиск способа устранения этой ошибки"
Изза чего это может быть??????????????????????????
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 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;
}
salam
157 / 138 / 11
Регистрация: 10.07.2012
Сообщений: 709
30.10.2012, 08:35     Найти произведение положительных элементов массива А #10
Цитата Сообщение от Маринчик Посмотреть сообщение
зад3.exe
это гениально...)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.10.2012, 18:00     Найти произведение положительных элементов массива А
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
Маринчик
 Аватар для Маринчик
0 / 0 / 0
Регистрация: 12.10.2012
Сообщений: 123
30.10.2012, 18:00  [ТС]     Найти произведение положительных элементов массива А #11
Цитата Сообщение от salam Посмотреть сообщение
это гениально...)
все гениальное просто
Yandex
Объявления
30.10.2012, 18:00     Найти произведение положительных элементов массива А
Ответ Создать тему
Опции темы

Текущее время: 13:47. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru