13 / 13 / 6
Регистрация: 27.05.2012
Сообщений: 208
1

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

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

Author24 — интернет-сервис помощи студентам
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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.10.2012, 23:44
Ответы с готовыми решениями:

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

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

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

Найти среднее арифметическое max и min значений элементов в главной диагонали
Доброго времени суток, как сделать так чтобы выводило сред. значение только для главной диагонали...

22
576 / 559 / 47
Регистрация: 16.12.2011
Сообщений: 1,389
30.10.2012, 23:50 2
находите минимум через for для i=1
и нумерация в с++ идет с 0, поэтому изначально правильнее писать
max = a[0];
0
13 / 13 / 6
Регистрация: 27.05.2012
Сообщений: 208
30.10.2012, 23:52  [ТС] 3
Исправил, не помогло.
0
576 / 559 / 47
Регистрация: 16.12.2011
Сообщений: 1,389
30.10.2012, 23:55 4
как теперь выглядит код?
0
102 / 102 / 39
Регистрация: 17.04.2011
Сообщений: 554
30.10.2012, 23:55 5
Цитата Сообщение от Lers Посмотреть сообщение
#include <iostream.h>
точку h убери и clrscr() а то паскаль напоминает
C++
1
2
max=a[0];
min=a[0];
0
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
102 / 102 / 39
Регистрация: 17.04.2011
Сообщений: 554
31.10.2012, 00:00 7
на визуале бы работало список ошибок можно посмотреть?
0
576 / 559 / 47
Регистрация: 16.12.2011
Сообщений: 1,389
31.10.2012, 00:01 8
в цикле ввода данных i++ перенесите после scanf
в цикле поиска минимума уберите i++, которое в 35 строке
0
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
102 / 102 / 39
Регистрация: 17.04.2011
Сообщений: 554
31.10.2012, 00:12 10
в циклах тоже сделай
C++
1
i=0
0
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
102 / 102 / 39
Регистрация: 17.04.2011
Сообщений: 554
31.10.2012, 00:17 12
тоже минимум с максимумом не определяет или что
1
13 / 13 / 6
Регистрация: 27.05.2012
Сообщений: 208
31.10.2012, 00:18  [ТС] 13
Цитата Сообщение от Евгений89 Посмотреть сообщение
тоже минимум с максимумом не определяет или что
да ни минимум ни максимум правильно не находит
0
576 / 559 / 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
102 / 102 / 39
Регистрация: 17.04.2011
Сообщений: 554
31.10.2012, 00:21 15
странно а должен
0
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
102 / 102 / 39
Регистрация: 17.04.2011
Сообщений: 554
31.10.2012, 00:27 17
среднеее арифметическое = сумма элементов/ количество элементов
а у тебя фигня какая то

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

Добавлено через 50 секунд
Использовал вариант когда ищется среднее арифметическое для чисел, лежащих между минимумом и максимумом
0
31.10.2012, 00:34
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.10.2012, 00:34
Помогаю со студенческими работами здесь

В массиве найти среднее арифметическое между min и max
В массиве A найти среднее арифметическое между min и max. #include &lt;stdio.h&gt; main() { float...

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

Процедура: Даны три числа a,b,c. Вычислить (max(a,b)+min(a,c))/(max(b,c)*min(a,b))+max(min(a,b),min(b,c))
Даны три числа a,b,c. Вычислить (max(a,b)+min(a,c))/(max(b,c)*min(a,b))+max(min(a,b),min(b,c)) с...

Найти среднее арифметическое элементов последовательности, расположенных между max и min элементами (включительно)
Дана последовательность из 100 различных целых чисел. Найти среднее арифметическое значение чисел,...


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

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

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