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

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

Войти
Регистрация
Восстановить пароль
 
 
Super GT
4 / 4 / 0
Регистрация: 23.12.2012
Сообщений: 131
#1

Среднее арифмитическое - C++

01.10.2013, 16:54. Просмотров 456. Ответов 17
Метки нет (Все метки)

Найти среднее арифмитическое элементов с четным индексом в одномерном массиве.

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
main ()
{     
/* тут пропускаю объявление переменных и ввод массива*/
  
/*компилятор ругается на этот цикл:*/   
 for (i = 0; i < size; i++) / i - счетчик в массиве
       {
           if mas[i % 2 = 0] /mas - имя массива
              {
                Summa1 += mas[i]; /Summa1 - сумма элементов с четным индексом, 
                j++; / j - считаем их количество. Да, переменной j значение 0 добавил изначально.
              } 
       }
Что делаю не так?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.10.2013, 16:54
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Среднее арифмитическое (C++):

Найти среднее арифмитическое и среднее геометрическое двух целых чисел - C++
Даны два целых числа найти их среднее арифмитическое их среднее геометрическое

Даны 2 числа. Найти среднее арифмитическое и среднее геометрическое их модулей - C++
1-я. Даны 2 числа. Найти среднее арифмитическое и среднее геометрическое их модулей. 2-я. Определить суммарный обьём в литрах.12...

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

Найти среднее арифмитическое матрицы - C++
Найти среднее арифмитическое положительных элементов каждого столбца матрицы A(n,m),заданой целыми числами .

Найти среднее арифмитическое элементов массива - C++
Найти среднее арифметическое отрицательных элементов заданной матрицы А , лежащих выше главной диагонали,и среднее арифметическое всех...

Среднее арифмитическое положительных и отрицательных чисел в массиве - C++
Здравствуйте. У меня возникла проблема с решением задания с массивом. Хочу попросить у вас помощи. Вот задание: Заполнить массив A. Массив...

17
Algoritmer
155 / 95 / 13
Регистрация: 07.03.2013
Сообщений: 484
Записей в блоге: 1
01.10.2013, 17:01 #2
строка 8, вот так:
C++
1
if (mas[i % 2 = 0])
И комментарий в с++ начинается с двойной косой, а не обинарной
1
Super GT
4 / 4 / 0
Регистрация: 23.12.2012
Сообщений: 131
01.10.2013, 17:16  [ТС] #3
Algoritmer,
Ага, а еще вместо "=" должен быть "=="! Паскаль такой паскаль)
Правда пока все равно не считает то, что нужно...
0
Algoritmer
155 / 95 / 13
Регистрация: 07.03.2013
Сообщений: 484
Записей в блоге: 1
01.10.2013, 17:26 #4
Цитата Сообщение от Super GT Посмотреть сообщение
j++; / j - считаем их количество
зачем? разве переменная size/2 не содержит это же количество?
1
Catstail
Модератор
22838 / 11204 / 1812
Регистрация: 12.02.2012
Сообщений: 18,439
01.10.2013, 17:30 #5
C++
1
2
3
4
5
6
7
   double s=0,p=0,avg;
   for (int i=0; i<n; i+=2)
   {
        p++;
        s+=(double) Arr[i];
   }
   avg=a/p;
1
lipnev
60 / 60 / 1
Регистрация: 14.09.2013
Сообщений: 145
01.10.2013, 17:31 #6
Algoritmer, и даже так будет неправильно - компилятор ругается.
И даже если так
C++
1
if (mas[i % 2 == 0])
будет неверно, хотя компилятор и пропустит это. В результате получим сумму всех элементов.
Super GT, чтоб найти сумму чётных элементов есть два варианта. Первый - изменить условие на
C++
1
if (i % 2 == 0)
Мы же всё-таки индекс проверяем.
Второй вариант изменить сам цикл:
C++
1
for (i = 0; i < size; i=i+2)
Никто же не заставляет перебирать каждый элемент массива. Кстати, в этом случае даже условие внутри цикла проверять не придётся.
1
Algoritmer
155 / 95 / 13
Регистрация: 07.03.2013
Сообщений: 484
Записей в блоге: 1
01.10.2013, 17:34 #7
В общем как-то так:
C++
1
2
3
4
5
6
7
8
9
for (i = 0; i < size; i++) / i - счетчик в массиве
{
       if (mas[i % 2 == 0]) /mas - имя массива
       {
            Summa1 += mas[i]; /Summa1 - сумма элементов с четным индексом, 
            j++; //ладно, это оставим
       }    
} 
double srednArifm=Summa1*1.0/j;
Добавлено через 2 минуты
Цитата Сообщение от lipnev Посмотреть сообщение
1
for (i = 0; i < size; i=i+2)
Никто же не заставляет перебирать каждый элемент массива
Вообще да. Так и надо.
1
Catstail
Модератор
22838 / 11204 / 1812
Регистрация: 12.02.2012
Сообщений: 18,439
01.10.2013, 17:36 #8
Поправочка:

C++
1
2
3
4
5
6
7
double p=0,avg=0;
   for (int i=0; i<n; i+=2)
   {
        p++;
        avg+=(double) Arr[i];
   }
   avg=/p;
Добавлено через 1 минуту
Непонятно, зачем перебирать все индексы, отбирая четные, когда можно сразу пройтись только по четным индексам?
1
Algoritmer
155 / 95 / 13
Регистрация: 07.03.2013
Сообщений: 484
Записей в блоге: 1
01.10.2013, 17:37 #9
Цитата Сообщение от Catstail Посмотреть сообщение
avg=/p;
точнее
C++
1
avg/=p;
2
Catstail
Модератор
22838 / 11204 / 1812
Регистрация: 12.02.2012
Сообщений: 18,439
01.10.2013, 17:39 #10
Ну да...
0
Super GT
4 / 4 / 0
Регистрация: 23.12.2012
Сообщений: 131
01.10.2013, 18:43  [ТС] #11
Все верно говорите, товарищи!
Алгоритм вроде выстраиваю верно, но получается так, что когда пишу:
C++ (Qt)
1
for (i = 0; i < size; i= i+2)
- идет подсчет элементов с нечетными индексами
а если:
C++ (Qt)
1
for (i = 1; i < size; i= i+2)
- то с четными.
0
Raali
01.10.2013, 18:46
  #12

Не по теме:

Цитата Сообщение от Super GT Посмотреть сообщение
Паскаль такой паскаль)
АрифмИтика такая арифмитика

0
Super GT
4 / 4 / 0
Регистрация: 23.12.2012
Сообщений: 131
01.10.2013, 19:07  [ТС] #13
Короче, пытаюсь найти ТОЛЬКО сумму четных элементов:
C++ (Qt)
1
2
for (i = 0; i < size; i+2)
      Summa1 += mas[i];
Итог: сумма нечетных элементов

Аналогично, пытаюсь найти сумму нечетных элементов:
C++ (Qt)
1
2
for (i = 0; i < size; i++)
      Summa1 += mas[i];
Итог: выдает сумму ВСЕХ элементов

Если сделать: (для четных)
C++ (Qt)
1
2
for (i = 0; i < size; i+3)
      Summa1 += mas[i];
Итог: сумма элементов с шагом в три элемента

Вопрос: имеет ли смысл считать с 1, как в паскале?
===============================
Сделал так для четных:
C++ (Qt)
1
2
for (i = 1; i < size; i= i+2)
      Summa1 += mas[i];
Итог: работает
А начиная с 0 - считает нечетные. После Паскаля такая путаница, блин, где, как это индексирование...какая тонкость есть, найти бы ее...

Ага, догадываюсь. Чтоб считать нечетные, надо вести поиск с (-1). Хех.(

Добавлено через 8 минут
Все, сделал!

Для четных:
f
C++ (Qt)
1
2
or (i = 1; i < size; i= i+2)
      Summa1 += mas[i];
Для нечетных:
C++ (Qt)
1
2
for (i = 0; i < size; i= i+2)
      Summa1 += mas[i];
Хех, никто не сказал (или не заметил), что счет для четных элементов ведется с 1-цы.)

Однако если по логике, то бред какой-то. Вы мне скажите, ОНО ТАК И ЕСТЬ, или это мне только кажется?
0
lipnev
60 / 60 / 1
Регистрация: 14.09.2013
Сообщений: 145
01.10.2013, 19:11 #14
Цитата Сообщение от Super GT Посмотреть сообщение
Вопрос: имеет ли смысл считать с 1, как в паскале?
Я думаю, что нет. Потому что в задании чётко сказано:
Цитата Сообщение от Super GT Посмотреть сообщение
элементов с четным индексом
1
Super GT
4 / 4 / 0
Регистрация: 23.12.2012
Сообщений: 131
01.10.2013, 19:38  [ТС] #15
lipnev,
А, кажется, я допер. Компилятор считает с 0, а не с 1-цы. Поэтому первый для меня элемент на экране - ЧЕТНЫЙ, а не наоборот.
Мда...

Тогда вопрос, как сделать для элементов с нечетным индексом?

Если так:
C++ (Qt)
1
2
for (i = 0; i < size; i=i+1)
      Summa1 += mas[i];
или так:
C++ (Qt)
1
2
for (i = 0; i < size; i++)
      Summa1 += mas[i];
то выводит сумму вообще ВСЕХ элементов!

Добавлено через 22 минуты
Для нечетных сделал так, ибо ничего другого пока не придумал:
C++ (Qt)
1
2
3
4
5
for (i = 0; i < size; i++)
       if (i % 2 != 0)
        {
          Summa2 += mas[i];
        }
А вообще, спс за подсказку при обработке индексов отдельных элементов массива, я долго не мог понять причину бреда.
0
01.10.2013, 19:38
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.10.2013, 19:38
Привет! Вот еще темы с ответами:

В двумерном массиве найти среднее арифмитическое первого столбца... - C++
Помогите пожлуйста нужно: задача №1 - В двумерном массиве найти среднее арифмитическое первого столбца и количество в каждом из следующих...

среднее арифмитическое значение трех чисел введеных с клавиатуры - C++
Добрый День всем)) Не могли бы помочь мне в составлении Программы.. т.к. я вобще не шарю. Если кто может помочь отпишите, там совсем...

Для каждой из матриц определить среднее арифмитическое их положительных елементов - C++
для каждой из матриц A, b, u C определить среднее арифмитическое их положительных елементов

В каждой строке заданной матрицы вычислить сумму, количество и среднее арифмитическое положительных элементов - C++
Задача - в каждой строке заданной матрицы A(N,M) вычислить сумму, количество и среднее арифмитическое положитьных элементов.


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

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

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