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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 5.00
Lers
13 / 13 / 3
Регистрация: 27.05.2012
Сообщений: 203
#1

Найти max и min, если min левее max, то среднее арифметическое между ними - C++

30.10.2012, 23:44. Просмотров 1552. Ответов 22
Метки нет (Все метки)

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
#include <iostream.h>
#include <stdio.h>
#include <conio.h>
#include <math.h>
 
void main()
{
int n,a[100];
int max,min,i=0,n1=0,n2=0;
float sr=0;
clrscr();
printf("\n Vvedite razmernoctb");
scanf("%d",&n);
while (i<n)
{
  i++;
  printf("\n A[%d]=",i);
  scanf("%d",&a[i]);
}
max=a[1];
min=a[1];
for (i=1;i<n;i++);
 if (a[i]>max)
   {
    max=a[i];
    n1=i;
   }
while (i<n)
{
  if (a[i]<min)
   {
    min=a[i];
    n2=i;
   }
i++;
}
printf("\n Max= %d",max);
printf("\n Min= %d",min);
if (n2<n1)
 {
  for (i=n2;i<n1;i++);
  sr+=a[i+1];
  sr=sr/(n2-n1);
  printf("\n Cpednee arifm= %f",sr);
 }
 else printf("\n Min pravee max");
 
getch();
}
Требуется помощь в коде.Программа не работает(
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.10.2012, 23:44
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Найти max и min, если min левее max, то среднее арифметическое между ними (C++):

Найти среднее арифметическое элементов между min и max элементами массива - C++
Найти среднеарифметическое чисел, находящихся между максимальным и минимальным элементами массива (включая эти элементы в вычисление...

Посчитать среднее арифметическое элементов массива, расположенных между max и min - C++
В массиве нужно подсчитать среднее арифметическое всех элементов расположенных между максимальным элементом и минимальным! например я...

Среднее арифметическое элементов, расположенных между первым min и последним max элементами массива - C++
Найти среднее арифметическое элементов, расположенных между первым минимальным и последним максимальным элементами. Если последний...

Среднее арифметическое min и max элементов матрицы - C++
В целочисленном массиве A для каждого столбца найти среднее арифметическое max и min элементов.

Подсчитать в массиве среднее арифметическое всех элементов, найти макси мальный max и минимальный min элементы массива. - C++
Вопрос в следующем. Нужно написать программу на С++ вот задание: Создать массив a1, a2, ..., an из n случайных чисел в пределах от 0...

С++ циклы нужно найти c среднее min и max значения - C++
Вот программа вычисляющая макс и минимальное , а нужно среднее макс и мин . ну там ещё последовательность чисел введенных с клавиатуры ,...

22
Lers
13 / 13 / 3
Регистрация: 27.05.2012
Сообщений: 203
31.10.2012, 00:23  [ТС] #16
Цитата Сообщение от I.M. Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
for (i=1;i<n;i++)//;
 if (a[i]>max)
   {
    max=a[i];
    n1=i;
   }
for (i=1;i<n;i++)//;
{
  if (a[i]<min)
   {
    min=a[i];
    n2=i;
   }
уберите закомментированные мной точки с запятой
Спасибо, сейчас нашло правильно максимум и минимум))) (такая мелочь, ; )

Добавлено через 1 минуту
Но не правильно находит среднее арифметическое между максимумом и минимумом, если минимум левее максимума.
0
Евгений89
99 / 99 / 9
Регистрация: 17.04.2011
Сообщений: 554
Завершенные тесты: 2
31.10.2012, 00:27 #17
среднеее арифметическое = сумма элементов/ количество элементов
а у тебя фигня какая то

Добавлено через 1 минуту
сделай отдельную пременную ддля суммирования элементов
0
Lers
13 / 13 / 3
Регистрация: 27.05.2012
Сообщений: 203
31.10.2012, 00:28  [ТС] #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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include <iostream.h>
#include <stdio.h>
#include <conio.h>
#include <math.h>
 
int main()
{
int n,a[100];
int max,min,i=0,n1=0,n2=0;
float sr=0;
clrscr();
printf("\n Vvedite razmernoctb");
scanf("%d",&n);
while (i<n)
{
  printf("\n A[%d]=",i);
  scanf("%d",&a[i]);
  i++;
}
max=a[0];
min=a[0];
for (i=0;i<n;i++)
 if (a[i]>max)
   {
    max=a[i];
    n1=i;
   }
for (i=0;i<n;i++)
  if (a[i]<min)
   {
    min=a[i];
    n2=i;
   }
 
printf("\n Max= %d",max);
printf("\n Min= %d",min);
if (n2<n1)
 {
  for (i=n2;i<n1;i++)
  sr+=a[i];
  sr=sr/(n2-n1);
  printf("\n Cpednee arifm= %6.2f",sr);
 }
 else printf("\n Min pravee max");
 
getch();
}
P.S. после всех исправлений, прога правильно находит max and min но не правильно находит ср.арифметическое между макс. и минимум. почему-то результат со знаком "-"

Добавлено через 43 секунды
Цитата Сообщение от Евгений89 Посмотреть сообщение
среднеее арифметическое = сумма элементов/ количество элементов
а у тебя фигня какая то

Добавлено через 1 минуту
сделай отдельную пременную ддля суммирования элементов
если min левее max то ср.арифм между ними нужно

Добавлено через 47 секунд
начиная с 37 строки нахожу ср.арифметическое.
0
I.M.
565 / 548 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
31.10.2012, 00:28 #19
это вариант, когда ищется среднее арифметическое для чисел, лежащих между минимумом и максимумом
C++
1
2
3
4
5
6
7
8
if (n2<n1)
 {
  for (i=n2+1;i<n1;i++)
  sr+=a[i];
  sr/=(n2-n1-1);//опасность! возможно деление на 0
  printf("\n Cpednee arifm= %6.2f",sr);
 }
 else printf("\n Min pravee max");
а это вариант, когда ищется среднее арифметическое для чисел, лежащих между минимумом и максимумом, включая минимум и максимум
C++
1
2
3
4
5
6
7
8
if (n2<n1)
 {
  for (i=n2;i<=n1;i++)
  sr+=a[i];
  sr/=(n2-n1+1);//здесь все ок - 0 не будет
  printf("\n Cpednee arifm= %6.2f",sr);
 }
 else printf("\n Min pravee max");
1
Lers
13 / 13 / 3
Регистрация: 27.05.2012
Сообщений: 203
31.10.2012, 00:34  [ТС] #20
Ответ получается правильный, но со знаком -

Добавлено через 50 секунд
Использовал вариант когда ищется среднее арифметическое для чисел, лежащих между минимумом и максимумом
0
I.M.
565 / 548 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
31.10.2012, 00:40 #21
Да, не заметил
C++
1
2
3
sr/=(n1-n2-1);//для первого варианта
 
sr/=(n1-n2+1);//для второго
1
Lers
13 / 13 / 3
Регистрация: 27.05.2012
Сообщений: 203
31.10.2012, 00:42  [ТС] #22
Пример ввода:
3
1
2
4
5
max=5
min=1
ср.арифм=-2.0000

Добавлено через 1 минуту
Цитата Сообщение от I.M. Посмотреть сообщение
Да, не заметил
C++
1
2
3
sr/=(n1-n2-1);//для первого варианта
 
sr/=(n1-n2+1);//для второго
Спасибо, все работает!!!
P.S. Еще раз большое спасибо)
0
I.M.
565 / 548 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
31.10.2012, 00:45 #23
Lers, не забудьте ситуацию с делением на 0 обработать.
Она возникнет вот для такого набора:
3
1
5
2
4
0
31.10.2012, 00:45
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.10.2012, 00:45
Привет! Вот еще темы с ответами:

Нужно найти произведение между min и max элементами массива - C++
Нужно найти произведение между min и max... #include &quot;stdafx.h&quot; #include &quot;iostream&quot; #include &lt;stdio.h&gt; #include &lt;conio.h&gt; ...

Найти произведение элементов массива, находящихся между min и max элементами - C++
В одномерном массиве, состоящем из N вещественных чисел вычислить: •Сумму отрицательных элементов. •Произведение элементов, находящихся...

Найти min(max(x, y), max(x, z), max(z, d) - C++
Даны различные действительные числа x, y, z, d. Найти min(max(x, y), max(x, z), max(z, d)).

Найти max {min (a, b), min (c, d)}. - C++
Найти max {min (a, b), min (c, d)}.


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

Или воспользуйтесь поиском по форуму:
23
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru