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

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

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 5.00
Lers
12 / 12 / 3
Регистрация: 27.05.2012
Сообщений: 202
30.10.2012, 23:44     Найти max и min, если min левее max, то среднее арифметическое между ними #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
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();
}
Требуется помощь в коде.Программа не работает(
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.10.2012, 23:44     Найти max и min, если min левее max, то среднее арифметическое между ними
Посмотрите здесь:

Массивы[max,min,среднее ариф.] C++
C++ Вывести элементы, находящиеся между min и max
C++ Найти max {min (a, b), min (c, d)}.
C++ Даны целые числа а, b, с. Вычислить в-сумму у = min (a, b + c) + max (ac, b)-min (a2, c)
C++ С++ циклы нужно найти c среднее min и max значения
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
I.M.
 Аватар для I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
30.10.2012, 23:50     Найти max и min, если min левее max, то среднее арифметическое между ними #2
находите минимум через for для i=1
и нумерация в с++ идет с 0, поэтому изначально правильнее писать
max = a[0];
Lers
12 / 12 / 3
Регистрация: 27.05.2012
Сообщений: 202
30.10.2012, 23:52  [ТС]     Найти max и min, если min левее max, то среднее арифметическое между ними #3
Исправил, не помогло.
I.M.
 Аватар для I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
30.10.2012, 23:55     Найти max и min, если min левее max, то среднее арифметическое между ними #4
как теперь выглядит код?
Евгений89
 Аватар для Евгений89
99 / 99 / 9
Регистрация: 17.04.2011
Сообщений: 554
Завершенные тесты: 2
30.10.2012, 23:55     Найти max и min, если min левее max, то среднее арифметическое между ними #5
Цитата Сообщение от Lers Посмотреть сообщение
#include <iostream.h>
точку h убери и clrscr() а то паскаль напоминает
C++
1
2
max=a[0];
min=a[0];
Lers
12 / 12 / 3
Регистрация: 27.05.2012
Сообщений: 202
30.10.2012, 23:58  [ТС]     Найти max и min, если min левее max, то среднее арифметическое между ними #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. выглядит сейчас вот так.
Евгений89
 Аватар для Евгений89
99 / 99 / 9
Регистрация: 17.04.2011
Сообщений: 554
Завершенные тесты: 2
31.10.2012, 00:00     Найти max и min, если min левее max, то среднее арифметическое между ними #7
на визуале бы работало список ошибок можно посмотреть?
I.M.
 Аватар для I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
31.10.2012, 00:01     Найти max и min, если min левее max, то среднее арифметическое между ними #8
в цикле ввода данных i++ перенесите после scanf
в цикле поиска минимума уберите i++, которое в 35 строке
Lers
12 / 12 / 3
Регистрация: 27.05.2012
Сообщений: 202
31.10.2012, 00:06  [ТС]     Найти max и min, если min левее max, то среднее арифметическое между ними #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 ошибка Вывод что минимум правее максимума
Евгений89
 Аватар для Евгений89
99 / 99 / 9
Регистрация: 17.04.2011
Сообщений: 554
Завершенные тесты: 2
31.10.2012, 00:12     Найти max и min, если min левее max, то среднее арифметическое между ними #10
в циклах тоже сделай
C++
1
i=0
Lers
12 / 12 / 3
Регистрация: 27.05.2012
Сообщений: 202
31.10.2012, 00:15  [ТС]     Найти max и min, если min левее max, то среднее арифметическое между ними #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. После всех исправлений вот так выглядит код
Евгений89
 Аватар для Евгений89
99 / 99 / 9
Регистрация: 17.04.2011
Сообщений: 554
Завершенные тесты: 2
31.10.2012, 00:17     Найти max и min, если min левее max, то среднее арифметическое между ними #12
тоже минимум с максимумом не определяет или что
Lers
12 / 12 / 3
Регистрация: 27.05.2012
Сообщений: 202
31.10.2012, 00:18  [ТС]     Найти max и min, если min левее max, то среднее арифметическое между ними #13
Цитата Сообщение от Евгений89 Посмотреть сообщение
тоже минимум с максимумом не определяет или что
да ни минимум ни максимум правильно не находит
I.M.
 Аватар для I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
31.10.2012, 00:19     Найти max и min, если min левее max, то среднее арифметическое между ними #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;
   }
уберите закомментированные мной точки с запятой
Евгений89
 Аватар для Евгений89
99 / 99 / 9
Регистрация: 17.04.2011
Сообщений: 554
Завершенные тесты: 2
31.10.2012, 00:21     Найти max и min, если min левее max, то среднее арифметическое между ними #15
странно а должен
Lers
12 / 12 / 3
Регистрация: 27.05.2012
Сообщений: 202
31.10.2012, 00:23  [ТС]     Найти max и min, если min левее max, то среднее арифметическое между ними #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 минуту
Но не правильно находит среднее арифметическое между максимумом и минимумом, если минимум левее максимума.
Евгений89
 Аватар для Евгений89
99 / 99 / 9
Регистрация: 17.04.2011
Сообщений: 554
Завершенные тесты: 2
31.10.2012, 00:27     Найти max и min, если min левее max, то среднее арифметическое между ними #17
среднеее арифметическое = сумма элементов/ количество элементов
а у тебя фигня какая то

Добавлено через 1 минуту
сделай отдельную пременную ддля суммирования элементов
Lers
12 / 12 / 3
Регистрация: 27.05.2012
Сообщений: 202
31.10.2012, 00:28  [ТС]     Найти max и min, если min левее max, то среднее арифметическое между ними #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 строки нахожу ср.арифметическое.
I.M.
 Аватар для I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
31.10.2012, 00:28     Найти max и min, если min левее max, то среднее арифметическое между ними #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");
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.10.2012, 00:34     Найти max и min, если min левее max, то среднее арифметическое между ними
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
Lers
12 / 12 / 3
Регистрация: 27.05.2012
Сообщений: 202
31.10.2012, 00:34  [ТС]     Найти max и min, если min левее max, то среднее арифметическое между ними #20
Ответ получается правильный, но со знаком -

Добавлено через 50 секунд
Использовал вариант когда ищется среднее арифметическое для чисел, лежащих между минимумом и максимумом
Yandex
Объявления
31.10.2012, 00:34     Найти max и min, если min левее max, то среднее арифметическое между ними
Ответ Создать тему
Опции темы

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