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

Нахождение минимального элемента массива - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 22, средняя оценка - 4.86
Гудвин89
Сообщений: n/a
23.01.2011, 20:44     Нахождение минимального элемента массива #1
Изучаю С++... Помогите решить задачку!!
В одномерном массиве, состоящем из n вещественных элементов, вычислить:
1) минимальный элемент массива
20 сумму элементов, расположенных между первым и последним положительными элементами...
вот что уже написал, но сумму не могу найти
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
#include <iostream>  
#include <stdlib.h>  
#include <time.h>    
using namespace std;
int main()
{ 
  //////////////////////////////////////////////////////////////////////////////////////////////////////////////
  setlocale (LC_ALL,"Russian");  
  int j,min,xn=0,xk;
  int y[15],k;
  time_t t;                    
  srand((unsigned) time(&t));  
  //////////////////////////////////////////////////////////////////////////////////////////////////////////////
  for(j=0;j<15;j++)
  {
    y[j]=rand()%200-99;                  
  }
  for(j=0;j<15;j++)
  {
    cout<<endl<<"y["<<j<<"]="<<y[j]; 
  }
  min=y[0];
 
  for (j=1;j<15;j++)
  {
      if(y[j]<min)
      {
          min=y[j];
      }
  }
  cout<<endl<<"минимальное значение="<<min<<endl;
 //////////////////////////////////////////////////////////////////////////////////////////////////////////
  for (j=0;j<15;j++)
  {if (xn==0 &&  y[j]>0) {xn++;}
    if (xn!=0 && y[j]>0) {xk=j;}
    }
  for (j=xn;j>xk;j++)
    {k+=y[j];   }
    cout<<"Сумма элементов между первым и последним положительными элементами="<<k<<endl;
  return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.01.2011, 20:44     Нахождение минимального элемента массива
Посмотрите здесь:

C++ Рекурсия: нахождение минимального элемента массива
Нахождение минимального элемента массива C++
Нахождение минимального элемента в строке матрицы C++
Вычислить произведение P = Хmin*Ymin минимального элемента xmin = min{xi} массива xi и минимального элемента ymin = min{yi} массива yi C++
C++ Нахождение минимального элемента в стеке
C++ Матрицы,нахождение максимального и минимального элемента
C++ Нахождение минимального элемента массива. Перевести с Паскаля на С++
Определить номера минимального элемента массива и элемента, являющегося минимальным без учета этого элемента. C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт C++
6542 / 3962 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
23.01.2011, 21:50     Нахождение минимального элемента массива #2
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
#include <iostream> 
#include <stdlib.h> 
#include <time.h> 
 
using namespace std;
 
int main()
{
    setlocale (LC_ALL,"Russian"); 
    int y[15];
    srand((unsigned)time(NULL));
    for( int j = 0; j < 15; j++)
    {
        y[j] = rand() % 200 - 99; 
        cout<<endl<<"y["<<j<<"]="<<y[j]; 
    }
    int min = y[0];
    for( int j = 1; j < 15; j++)
        if(y[j] < min)
            min = y[j];
    cout << endl << "минимальное значение = " << min << endl;
    int Xn, Xk;
    for( int j = 0; j < 15; j++)
        if(y[j] >= 0)
        {
            Xn = j;
            break;
        }
    for( int j = 14; j >= 0; j--)
        if(y[j] >= 0)
        {
            Xk = j;
            break;
        }
    int sum(0);
    for( Xn; Xn <= Xk; Xn++ )
        sum += y[Xn];
    cout<<"Сумма элементов между первым и последним положительными элементами=" << sum << endl;
    cin.get();
    cin.get();
    return 0;
}
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2293 / 1663 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
23.01.2011, 22:19     Нахождение минимального элемента массива #3
Цитата Сообщение от Гудвин89 Посмотреть сообщение
минимальный элемент массива
C++
1
2
3
4
5
6
7
8
9
10
#include <algorithm>
#include <iostream>
 
int main() {
  const int array[] = { 5, 7, 2, 9, 0, 2, 4, 5 };
  
  std::cout << "Минимальный элемент: " << *std::min_element(array, array + sizeof(array) / sizeof(array[0])) << std::endl;
 
  return 0;
}
Результат: http://codepad.org/Uj5jIF5S

Цитата Сообщение от Гудвин89 Посмотреть сообщение
сумму элементов, расположенных между первым и последним положительными элементами
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
#include <algorithm>
#include <iostream>
#include <iterator>
#include <functional>
#include <numeric>
#include <cstddef>
 
const int* FirstPositive(const int* array, std::size_t size) {
  return std::find_if(array, array + size, std::bind2nd(std::greater<int>(), 0));
}
 
const int* LastPositive(const int* array, std::size_t size) {
  return std::find_if(std::reverse_iterator<const int*>(array + size), 
                      std::reverse_iterator<const int*>(array), 
                      std::bind2nd(std::greater<int>(), 0)).base();
}
 
int main() {
  const int         array[] = { -2, -1, 2, 3, 4, 5, 6, -4, -5, -4 };
  const std::size_t size    = sizeof(array) / sizeof(array[0]);
 
  std::cout << "Сумма: " << std::accumulate(FirstPositive(array, size),
                                            LastPositive (array, size), 0) << std::endl;
  return 0;
}
Результат: http://codepad.org/ATsyRvKZ
Yandex
Объявления
23.01.2011, 22:19     Нахождение минимального элемента массива
Ответ Создать тему
Опции темы

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