Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.83/12: Рейтинг темы: голосов - 12, средняя оценка - 4.83
Lers
13 / 13 / 6
Регистрация: 27.05.2012
Сообщений: 208
1

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

30.10.2012, 23:44. Просмотров 2356. Ответов 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
Ответы с готовыми решениями:

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

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

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

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

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

22
I.M.
568 / 551 / 47
Регистрация: 16.12.2011
Сообщений: 1,389
30.10.2012, 23:50 2
находите минимум через for для i=1
и нумерация в с++ идет с 0, поэтому изначально правильнее писать
max = a[0];
0
Lers
13 / 13 / 6
Регистрация: 27.05.2012
Сообщений: 208
30.10.2012, 23:52  [ТС] 3
Исправил, не помогло.
0
I.M.
568 / 551 / 47
Регистрация: 16.12.2011
Сообщений: 1,389
30.10.2012, 23:55 4
как теперь выглядит код?
0
30.10.2012, 23:55
Евгений89
100 / 100 / 39
Регистрация: 17.04.2011
Сообщений: 554
Завершенные тесты: 2
30.10.2012, 23:55 5
Цитата Сообщение от Lers Посмотреть сообщение
#include <iostream.h>
точку h убери и clrscr() а то паскаль напоминает
C++
1
2
max=a[0];
min=a[0];
0
Lers
13 / 13 / 6
Регистрация: 27.05.2012
Сообщений: 208
30.10.2012, 23:58  [ТС] 6
Цитата Сообщение от Евгений89 Посмотреть сообщение
точку h убери и clrscr() а то паскаль напоминает
C++
1
2
max=a[0];
min=a[0];
в универе заставляют писать на Borland C++, а борланд не видит iostream без .h )))

Добавлено через 44 секунды
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[0];
min=a[0];
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;
   }
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();
}
P.S. выглядит сейчас вот так.
0
Евгений89
100 / 100 / 39
Регистрация: 17.04.2011
Сообщений: 554
Завершенные тесты: 2
31.10.2012, 00:00 7
на визуале бы работало список ошибок можно посмотреть?
0
I.M.
568 / 551 / 47
Регистрация: 16.12.2011
Сообщений: 1,389
31.10.2012, 00:01 8
в цикле ввода данных i++ перенесите после scanf
в цикле поиска минимума уберите i++, которое в 35 строке
0
Lers
13 / 13 / 6
Регистрация: 27.05.2012
Сообщений: 208
31.10.2012, 00:06  [ТС] 9
Цитата Сообщение от Евгений89 Посмотреть сообщение
на визуале бы работало список ошибок можно посмотреть?
ошибок нет, выдает не правильный результат, сейчас дам пример

Добавлено через 1 минуту
пример:
ввод:
2
3
4
5
0
1
вывод:
max=1
min=0

Добавлено через 3 минуты
Цитата Сообщение от I.M. Посмотреть сообщение
в цикле ввода данных i++ перенесите после scanf
в цикле поиска минимума уберите i++, которое в 35 строке
Исправил,
пример:
ввод:
3
4
1
5
6
7
вывод:
max=3
min=0
+1 ошибка Вывод что минимум правее максимума
0
Евгений89
100 / 100 / 39
Регистрация: 17.04.2011
Сообщений: 554
Завершенные тесты: 2
31.10.2012, 00:12 10
в циклах тоже сделай
C++
1
i=0
0
Lers
13 / 13 / 6
Регистрация: 27.05.2012
Сообщений: 208
31.10.2012, 00:15  [ТС] 11
Цитата Сообщение от Евгений89 Посмотреть сообщение
в циклах тоже сделай
C++
1
i=0
исправил, результат снова не верный(

Добавлено через 1 минуту
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+1];
  sr=sr/(n2-n1);
  printf("\n Cpednee arifm= %6.2f",sr);
 }
 else printf("\n Min pravee max");
 
getch();
}
P.S. После всех исправлений вот так выглядит код
0
Евгений89
100 / 100 / 39
Регистрация: 17.04.2011
Сообщений: 554
Завершенные тесты: 2
31.10.2012, 00:17 12
тоже минимум с максимумом не определяет или что
1
Lers
13 / 13 / 6
Регистрация: 27.05.2012
Сообщений: 208
31.10.2012, 00:18  [ТС] 13
Цитата Сообщение от Евгений89 Посмотреть сообщение
тоже минимум с максимумом не определяет или что
да ни минимум ни максимум правильно не находит
0
I.M.
568 / 551 / 47
Регистрация: 16.12.2011
Сообщений: 1,389
31.10.2012, 00:19 14
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
Евгений89
100 / 100 / 39
Регистрация: 17.04.2011
Сообщений: 554
Завершенные тесты: 2
31.10.2012, 00:21 15
странно а должен
0
Lers
13 / 13 / 6
Регистрация: 27.05.2012
Сообщений: 208
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
100 / 100 / 39
Регистрация: 17.04.2011
Сообщений: 554
Завершенные тесты: 2
31.10.2012, 00:27 17
среднеее арифметическое = сумма элементов/ количество элементов
а у тебя фигня какая то

Добавлено через 1 минуту
сделай отдельную пременную ддля суммирования элементов
0
Lers
13 / 13 / 6
Регистрация: 27.05.2012
Сообщений: 208
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.
568 / 551 / 47
Регистрация: 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 / 6
Регистрация: 27.05.2012
Сообщений: 208
31.10.2012, 00:34  [ТС] 20
Ответ получается правильный, но со знаком -

Добавлено через 50 секунд
Использовал вариант когда ищется среднее арифметическое для чисел, лежащих между минимумом и максимумом
0
31.10.2012, 00:34
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.10.2012, 00:34

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

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

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


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

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

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