Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.83/18: Рейтинг темы: голосов - 18, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 10.05.2010
Сообщений: 8
1

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

10.05.2010, 01:49. Показов 3368. Ответов 25
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Составить программу,которая вычисляет сумму элементов неупорядоченного целочисленного массива М, который состоит из 12 чисел, которые не повторяются,
расположенных между ёё максимальным и минимальным элементами.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.05.2010, 01:49
Ответы с готовыми решениями:

Найти сумму элементов которые расположены между максимальным и минимальным элементами массива.Массив задан Рандомом
Найти сумму элементов которые расположены между максимальным и минимальным элементами...

Найти сумму отрицательных элементов массива, которые расположены между максимальным и минимальным элементом
нужна помощь.... Дан одномерный массив, который содержит не более 40 целых чисел. Найти сумму...

Переписать только те элементы массива, которые расположены между его максимальным и минимальным элементами
Задать массив А1 помощью генератора случайных чисел только числами, кратными 3. Переписать массив...

Найти среднее арифметическое тех элементов, которые расположены между максимальным и минимальным элементами
Средствами ООП решить задачу: Случайным образом вводятся 20 вещественных элементов массива. Найти...

25
115 / 36 / 3
Регистрация: 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;}
0
Быдлокодер
512 / 298 / 85
Регистрация: 22.11.2009
Сообщений: 892
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, В коде ошибки и он работает неправильно.
0
Эксперт С++
4727 / 2548 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
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), что максимальный элемент может встретиться раньше, чем минимальный.
0
Эксперт С++
2347 / 1720 / 148
Регистрация: 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);
1
Быдлокодер
512 / 298 / 85
Регистрация: 22.11.2009
Сообщений: 892
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, Для студентки первого курса такой код может быть неподъемным
0
Эксперт С++
2347 / 1720 / 148
Регистрация: 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);
}
1
115 / 36 / 3
Регистрация: 13.12.2009
Сообщений: 223
10.05.2010, 10:29 8
я просто не проверял прогу там грубых ошибок быть не должно надеелся исправить сможете
0
0 / 0 / 0
Регистрация: 10.05.2010
Сообщений: 8
10.05.2010, 11:28  [ТС] 9
Так какая из всех программ правильная?
0
115 / 36 / 3
Регистрация: 13.12.2009
Сообщений: 223
10.05.2010, 11:36 10
мою отладь и всё)
0
0 / 0 / 0
Регистрация: 10.05.2010
Сообщений: 8
10.05.2010, 11:39  [ТС] 11
а что Darky сделал.Оно правильное?
0
115 / 36 / 3
Регистрация: 13.12.2009
Сообщений: 223
10.05.2010, 11:59 12
я не сарел еси чесно
0
0 / 0 / 0
Регистрация: 10.05.2010
Сообщений: 8
10.05.2010, 11:59  [ТС] 13
Я просто ничего не знаю.Вот и обратилась к вам
0
115 / 36 / 3
Регистрация: 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 / 0
Регистрация: 10.05.2010
Сообщений: 8
10.05.2010, 12:10  [ТС] 15
Всё..... в ней ниче изменять не надо?
0
115 / 36 / 3
Регистрация: 13.12.2009
Сообщений: 223
10.05.2010, 12:12 16
ну запусти проверь тот ли ответ или нет еси нет обращайся я тута пока
0
Darky
10.05.2010, 12:16
  #17

Не по теме:

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

0
1552 / 918 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
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, у вас ошибка, задание посчитать сумму МЕЖДУ минимальным и максимальным элементами.
0
Быдлокодер
512 / 298 / 85
Регистрация: 22.11.2009
Сообщений: 892
10.05.2010, 12:19 19
neske, А если максимальный левее относительно минимального окажется?
1
115 / 36 / 3
Регистрация: 13.12.2009
Сообщений: 223
10.05.2010, 12:20 20
ну эт элементарно исправить))
1
10.05.2010, 12:20
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.05.2010, 12:20
Помогаю со студенческими работами здесь

вычислите сумму элементов, которая расположена между теми элементами,которые сами расположены между первым и последним отрицательными элементами.
вычислите сумму элементов, которая расположена между теми элементами,которые сами расположены...

Найти сумму элементов массива между максимальным и минимальным элементами
помогите пожалуйста решить задачку, очень надо)) Найти сумму элементов массива А (100),...

Вычислить сумму элементов массива, стоящих между минимальным и максимальным элементами
В одномерном массиве, состоящем из N элементов, вычислить сумму элементов, стоящих между...

Найти сумму элементов массива, расположенных между максимальным и минимальным элементами
Дан двумерный массив размером n*m, заполненный случайными числами. Найти сумму его элементов,...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru