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

Составить программу,которая вычисляет сумму элементов массива, которые расположены между максимальным и минимальным элементами. - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.77
СнежанкаЯяЯ
0 / 0 / 0
Регистрация: 10.05.2010
Сообщений: 8
10.05.2010, 01:49     Составить программу,которая вычисляет сумму элементов массива, которые расположены между максимальным и минимальным элементами. #1
Составить программу,которая вычисляет сумму элементов неупорядоченного целочисленного массива М, который состоит из 12 чисел, которые не повторяются,
расположенных между ёё максимальным и минимальным элементами.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.05.2010, 01:49     Составить программу,которая вычисляет сумму элементов массива, которые расположены между максимальным и минимальным элементами.
Посмотрите здесь:

C++ Найти сумму элементов массива, расположенных между элементами с минимальным и максимальным значением
C++ В массиве А найти сумму элементов, расположенных между минимальным и максимальным элементами массива
Найти сумму элементов массива между максимальным и минимальным элементами C++
C++ вычислите сумму элементов, которая расположена между теми элементами,которые сами расположены между первым и последним отрицательными элементами.
Найти среднее арифметическое тех элементов, которые расположены между максимальным и минимальным элементами C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
genius5
 Аватар для genius5
114 / 36 / 2
Регистрация: 13.12.2009
Сообщений: 223
10.05.2010, 02:00     Составить программу,которая вычисляет сумму элементов массива, которые расположены между максимальным и минимальным элементами. #2
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
#define n 12
int main(void)
{int mas[n]={1,2,3,0,5,4,3,2,6,7,20,4},i,r,min=mas[0],max=mas[0],nmin=0,nmax=0,sum=0;
 
 
for(i=0;i<n;i++)
if(min>mas[i]){min=mas[i];nmin=i;}
if(max<mas[i]{max=mas[i];nmax=i;}
}
if(nmin>nmax){r=nmin;nmin=nmax;nmax=r;}
for(i=nmin;i<=nmax;i++)
{sum+=mas[i];}
printf("summa=%d ",sum);
return 0;}
Darky
Быдлокодер
 Аватар для Darky
507 / 294 / 45
Регистрация: 22.11.2009
Сообщений: 892
Завершенные тесты: 1
10.05.2010, 06:18     Составить программу,которая вычисляет сумму элементов массива, которые расположены между максимальным и минимальным элементами. #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
#include <iostream>
#include <stdlib.h>
#include <time.h>
#include <algorithm>
#include <conio.h>
  #define N 12
using namespace std;
int main()
{
srand((unsigned)time(0));
  int A[N],i;
  for (i=0;i<N;i++)
  {
    A[i]=rand();
    cout<<A[i]<<" ";
  }
  int max=*std::max_element(A,A+N),max_i=0;
  int min=*std::min_element(A,A+N),min_i=0;
  for (i=0;i<N;i++)
  {
    if (max==A[i]) max_i=i;
    if (min==A[i]) min_i=i;
  }
  int sum=0;
  for (i=max_i;i<min_i;i++)
    sum+=A[i];
  cout<<"\n"<<sum;
  getch();
}
Добавлено через 2 минуты
genius5, В коде ошибки и он работает неправильно.
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
10.05.2010, 06:47     Составить программу,которая вычисляет сумму элементов массива, которые расположены между максимальным и минимальным элементами. #4
Цитата Сообщение от Darky Посмотреть сообщение
genius5, В коде ошибки и он работает неправильно.
Да у него есть ошибки, а именно:

Цитата Сообщение от genius5 Посмотреть сообщение
for(i=nmin;i<=nmax;i++)
{sum+=mas[i];}
И у Вас тоже половина этой же ошибки :
Цитата Сообщение от Darky Посмотреть сообщение
for (i=max_i;i<min_i;i++)
Ключевое слово здесь "между":
Цитата Сообщение от СнежанкаЯяЯ Посмотреть сообщение
Составить программу,которая вычисляет сумму элементов неупорядоченного целочисленного массива М, который состоит из 12 чисел, которые не повторяются,
расположенных между ёё максимальным и минимальным элементами.
Кроме того в Вашей программе не учтено (в отличии от программы genius5), что максимальный элемент может встретиться раньше, чем минимальный.
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2294 / 1664 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
10.05.2010, 09:11     Составить программу,которая вычисляет сумму элементов массива, которые расположены между максимальным и минимальным элементами. #5
СнежанкаЯяЯ, проверяй:
C++
1
2
3
4
5
6
7
8
#include <algorithm>
#include <numeric>
 
int Sum(int* arr, int size) {
  int* pmin = min_element(arr, arr + size);
  int* pmax = max_element(arr, arr + size);
 
  return pmin < pmax? std::accumulate(pmin + 1, pmax, 0) : std::accumulate(pmax + 1, pmin, 0);
Darky
Быдлокодер
 Аватар для Darky
507 / 294 / 45
Регистрация: 22.11.2009
Сообщений: 892
Завершенные тесты: 1
10.05.2010, 09:37     Составить программу,которая вычисляет сумму элементов массива, которые расположены между максимальным и минимальным элементами. #6
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
#include <iostream>
#include <stdlib.h>
#include <time.h>
#include <algorithm>
#include <conio.h>
  #define N 12
using namespace std;
int main()
{
srand((unsigned)time(0));
  int A[N],i;
  for (i=0;i<N;i++)
  {
    A[i]=rand();
    cout<<A[i]<<" ";
  }
  int max=*std::max_element(A,A+N),max_i=0;
  int min=*std::min_element(A,A+N),min_i=0;
  for (i=0;i<N;i++)
  {
    if (max==A[i]) max_i=i;
    if (min==A[i]) min_i=i;
  }
  int sum=0;
  if (max_i<min_i)
  {
    for (i=max_i+1;i<min_i;i++)
      sum+=A[i];
  }
  else
  {
    for (i=min_i+1;i<max_i;i++)
      sum+=A[i];
  }
  cout<<"\n"<<sum;
  getch();
}

Не по теме:

ве-ло-си-пед..(с)



Добавлено через 58 секунд
CyBOSSeR, Для студентки первого курса такой код может быть неподъемным
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2294 / 1664 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
10.05.2010, 10:24     Составить программу,которая вычисляет сумму элементов массива, которые расположены между максимальным и минимальным элементами. #7

Не по теме:

Цитата Сообщение от Darky Посмотреть сообщение
CyBOSSeR, Для студентки первого курса такой код может быть неподъемным
Возможно, но как вариант, пусть будет.


Чуть поправил:
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <algorithm>
#include <numeric>
 
int Sum(int* arr, int size) {
  int* pmin = min_element(arr, arr + size);
  int* pmax = max_element(arr, arr + size);
 
  if (pmin == pmax)
    return 0;
 
  return pmin < pmax? std::accumulate(pmin + 1, pmax, 0) : std::accumulate(pmax + 1, pmin, 0);
}
genius5
 Аватар для genius5
114 / 36 / 2
Регистрация: 13.12.2009
Сообщений: 223
10.05.2010, 10:29     Составить программу,которая вычисляет сумму элементов массива, которые расположены между максимальным и минимальным элементами. #8
я просто не проверял прогу там грубых ошибок быть не должно надеелся исправить сможете
СнежанкаЯяЯ
0 / 0 / 0
Регистрация: 10.05.2010
Сообщений: 8
10.05.2010, 11:28  [ТС]     Составить программу,которая вычисляет сумму элементов массива, которые расположены между максимальным и минимальным элементами. #9
Так какая из всех программ правильная?
genius5
 Аватар для genius5
114 / 36 / 2
Регистрация: 13.12.2009
Сообщений: 223
10.05.2010, 11:36     Составить программу,которая вычисляет сумму элементов массива, которые расположены между максимальным и минимальным элементами. #10
мою отладь и всё)
СнежанкаЯяЯ
0 / 0 / 0
Регистрация: 10.05.2010
Сообщений: 8
10.05.2010, 11:39  [ТС]     Составить программу,которая вычисляет сумму элементов массива, которые расположены между максимальным и минимальным элементами. #11
а что Darky сделал.Оно правильное?
genius5
 Аватар для genius5
114 / 36 / 2
Регистрация: 13.12.2009
Сообщений: 223
10.05.2010, 11:59     Составить программу,которая вычисляет сумму элементов массива, которые расположены между максимальным и минимальным элементами. #12
я не сарел еси чесно
СнежанкаЯяЯ
0 / 0 / 0
Регистрация: 10.05.2010
Сообщений: 8
10.05.2010, 11:59  [ТС]     Составить программу,которая вычисляет сумму элементов массива, которые расположены между максимальным и минимальным элементами. #13
Я просто ничего не знаю.Вот и обратилась к вам
genius5
 Аватар для genius5
114 / 36 / 2
Регистрация: 13.12.2009
Сообщений: 223
10.05.2010, 12:04     Составить программу,которая вычисляет сумму элементов массива, которые расположены между максимальным и минимальным элементами. #14
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 #include <stdio.h>
#define n 12
int main(void)
{int mas[n]={1,2,3,0,5,4,3,2,6,7,20,4},i,r,min=mas[0],max=mas[0],nmin=0,nmax=0,sum=0;
 
 
for(i=0;i<n;i++)
{if(min>mas[i]){min=mas[i];nmin=i;}
if(max<mas[i]){max=mas[i];nmax=i;}
}
if(nmin>nmax){r=nmin;nmin=nmax;nmax=r;}
for(i=nmin;i<=nmax;i++)
{sum+=mas[i];}
printf("summa=%d ",sum);
return 0;}
Добавлено через 58 секунд
вот подправленная просто скоки нужны были))
СнежанкаЯяЯ
0 / 0 / 0
Регистрация: 10.05.2010
Сообщений: 8
10.05.2010, 12:10  [ТС]     Составить программу,которая вычисляет сумму элементов массива, которые расположены между максимальным и минимальным элементами. #15
Всё..... в ней ниче изменять не надо?
genius5
 Аватар для genius5
114 / 36 / 2
Регистрация: 13.12.2009
Сообщений: 223
10.05.2010, 12:12     Составить программу,которая вычисляет сумму элементов массива, которые расположены между максимальным и минимальным элементами. #16
ну запусти проверь тот ли ответ или нет еси нет обращайся я тута пока
Darky
10.05.2010, 12:16
  #17

Не по теме:

А CyBOSSeR еще algorithm и numeric использовал. А тут, оказывается, "я ничего не понимаю"

neske
1419 / 786 / 55
Регистрация: 26.03.2010
Сообщений: 2,694
10.05.2010, 12:18     Составить программу,которая вычисляет сумму элементов массива, которые расположены между максимальным и минимальным элементами. #18
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
#include <iostream>
#include <iomanip>
 
int main()
{
    const int size=12;
    int MAS[size]={1,7,5,3,9,8,12,21,44,3,2,10};
 
    std::cout << "Start matrix:\n";
    for (int i=0; i<size; i++)
        std::cout << std::setw(3) << MAS[i];
    std::cout << std::endl;
 
    int min=MAS[0], max=0;
    int index_min=0, index_max;
 
    for (int i=0; i<size; i++) // ищем максимальный и минимальный элементы.
    {
        if (min>MAS[i]) { min=MAS[i]; index_min=i; }
        if (max<MAS[i]) { max=MAS[i]; index_max=i; }
    }
 
    int sum=0;
    for (int i=index_min+1; i<index_max; i++) // считаем сумму.
        sum+=MAS[i];
 
    std::cout << "Sum: " << sum << std::endl;
    return 0;
}
genius5, у вас ошибка, задание посчитать сумму МЕЖДУ минимальным и максимальным элементами.
Darky
Быдлокодер
 Аватар для Darky
507 / 294 / 45
Регистрация: 22.11.2009
Сообщений: 892
Завершенные тесты: 1
10.05.2010, 12:19     Составить программу,которая вычисляет сумму элементов массива, которые расположены между максимальным и минимальным элементами. #19
neske, А если максимальный левее относительно минимального окажется?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.05.2010, 12:20     Составить программу,которая вычисляет сумму элементов массива, которые расположены между максимальным и минимальным элементами.
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
genius5
 Аватар для genius5
114 / 36 / 2
Регистрация: 13.12.2009
Сообщений: 223
10.05.2010, 12:20     Составить программу,которая вычисляет сумму элементов массива, которые расположены между максимальным и минимальным элементами. #20
ну эт элементарно исправить))
Yandex
Объявления
10.05.2010, 12:20     Составить программу,которая вычисляет сумму элементов массива, которые расположены между максимальным и минимальным элементами.
Ответ Создать тему
Опции темы

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