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

Одномерный массив - C++

Восстановить пароль Регистрация
 
GX
0 / 0 / 0
Регистрация: 28.09.2012
Сообщений: 8
13.11.2012, 23:28     Одномерный массив #1
В одномерном массиве,состоящем из n вещественных чисел
1) найти сумму максимальных элементов
2) максимальное произведение подряд идущих положительных элементов
3) создать новый массив из элементов исходного, расположенных между минимальными и последним положительным элементами массива
Разницы нет как составить программу на Си или С++
Есть ошибочный пример на си этой программы.
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
{
    void main (void);
 int t,n,pp=0,tmin,tpol,tn,tk,i;
 float *p,*p1 ,sum=0,max=-10000 ,pr=1,min;
setlocale( LC_ALL,"Russian" );
 puts("\nВведите размер исходного массива ");
 scanf("%d",&n);
 // выделяю память под N вещественных чисел
  p=new float[n];
  p1=new float[n];
  randomize();
 // заполнение исходного массива
 for(t=0;t<n;printf("%6.2f",*(p+t)=random(100)/10.-5.),t++);
 for(t=0;t<n;t++)
  if (*(p+t)>max) max=*(p+t);
 for(t=0;t<n;t++)
  if (*(p+t)==max) sum+=max;
 printf("\nСумма максимальных элементов равна %6.2f",sum);
 max=-10000;
 for(t=0;t<n;t++)
  {
   if (*(p+t)>0) pr*=(*(p+t)),pp=1;
   if (((*(p+t)<=0) || (t==n-1)) && (pp))
    {
     if (pr>max) max=pr;
      pr=1;
    }
  }
 printf("\nМаксимальное произведение полож. подряд идущих %5.2f",max);
 // 3) создать новый массив из элементов исходного, расположенных
 //    между минимальными и последним положительным
 min=10000;
 tpol=-10;
 for(t=0;t<n;t++)
  {
   if (*(p+t)<min)
    {
     min=*(p+t);
     tmin=t;
    }
    if (*(p+t)>0) tpol=t;
  }
 if(tpol==-10) puts("\nВ массиве нет положительных элементов.") ;
 if (abs(tmin-tpol)==1) puts("\nЭлементы минимальный и последний положительный стоят вплотную.\n");
  else
   {
    tn=tmin;
    tk=tpol;
    if (tmin>tpol) tn=tpol,tk=tmin;
    for (i=0,t=tn+1;t<tk;t++)
     *(p1+i++)=*(p+t);
    puts("\nЭлементы, стоящие между минимальным и последним положительным\n");
    for(i=0,t=tn+1;t<tk;t++)
     printf("%6.2f",*(p1+i++));
   }
 delete []p;
 delete []p1;
 getch();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.11.2012, 23:28     Одномерный массив
Посмотрите здесь:

C++ Одномерный массив
Одномерный массив C++
C++ Одномерный массив.
C++ Одномерный массив
C++ Одномерный массив
C++ Одномерный массив
Одномерный массив C++
Одномерный массив C++ C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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