Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [C++] обработка массива 
:(
    Опции темы
dizel003
  Дата 1.11.2011, 16:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 211
Регистрация: 7.11.2007

Репутация: нет
Всего: нет



Здравствуйте. Нужна помощь в написании небольшой программы на C ++

Массив из N вещественных элементов заполнить с клавиатуры, передать в функцию, вычислить среднее арифметическое значение элементов массива, результат вернуть в вызывающую функцию main и вывести на экран. 


Заранее благодарю вас.

Это сообщение отредактировал(а) dizel003 - 1.11.2011, 16:06
PM MAIL   Вверх
azesmcar
Дата 1.11.2011, 16:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 9
Всего: 211



Вообще-то так, как ты описал будет не очень то оптимально, так-как придется делать две итерации вместо одной. Так будет правильнее
Код

#include <iostream>

int main()
{
    const int N = 10;
    int numbers[N];
    int sum = 0;
    for (int i = 0; i < N; ++i)
    {
        std::cout << "numbers[" << i << "] = ";
        std::cin >> numbers[i];
        sum += numbers[i];
    }
    std::cout << "Arithmetic mean = " << (double)sum / N << std::endl;
}

но на всякий случай (если сильно надо)
Код

#include <iostream>

double arithmetic_mean(const int const * arr, int size)
{
    int sum = 0;
    for (int i = 0; i < size; ++i)
        sum += arr[i];
    return (double)sum / size;
}

int main()
{
    const int N = 10;
    int numbers[N];
    int sum = 0;
    for (int i = 0; i < N; ++i)
    {
        std::cout << "numbers[" << i << "] = ";
        std::cin >> numbers[i];
    }
    std::cout << "Arithmetic mean = " << arithmetic_mean(numbers, N) << std::endl;
}

ну или так
Код

#include <iostream>
#include <numeric>
#include <vector>

int main()
{
    const int N = 10;
    std::vector<int> numbers(N, 0);
    for (int i = 0; i < N; ++i)
    {
        std::cout << "numbers[" << i << "] = ";
        std::cin >> numbers[i];
    }
    int sum = std::accumulate(numbers.begin(), numbers.end(), 0);
    std::cout << "Arithmetic mean = " << (double)sum / N << std::endl;
}

PM   Вверх
dizel003
Дата 1.11.2011, 22:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 211
Регистрация: 7.11.2007

Репутация: нет
Всего: нет



Цитата(azesmcar @ 1.11.2011,  16:32)
Вообще-то так, как ты описал будет не очень то оптимально, так-как придется делать две итерации вместо одной. Так будет правильнее
............................................................

Спасибо больше за ответ!!!

А не могли бы вы помочь, вот это лучше переделать. Я вот сейчас пришел домой, и не заметив ваш ответ начал делать свое...
Сделал за пару часов сидя за книгой)

Код


#include <iostream.h>

void modify_array (int[],int);

void main()
{

const int N = 10;
int a [N];
for (int i=0;i<N;i++)
{
cout<<No:<<i+1<<endl;
cin>>a[i];

modify_array(a,N); 

}
}

void modify_array (int b[],int d)
{


}


На сколько я понял строчка 
Код

modify_array(a,N); 

должно передавать массив по ссылке

И как я понял в функции 

Код

void modify_array (int b[],int d)
{


}


надо описать математическое действие по подсчету среднеарифметического числа!!! Что я не как не могу понять пока как сделать(((((  smile 

И потом надо результат обратно вернуть в функцию mein

Код

void main()
{

const int N = 10;
int a [N];
for (int i=0;i<N;i++)
{
cout<<No:<<i+1<<endl;
cin>>a[i];

modify_array(a,N); 

}
}


и вывести на экран значение! Ну это легко...

Если можно, подскажите пожалуйста как в моей формуле рассчитать среднеарифметическое... так как мне придется объяснять работу и я не уверен, что смогу рассказать, как в вашем коде это получается(
Первый раз столкнулся с  "std::"
Никудышный из меня программист, очень давно не включал эту программу... а вот тут пришлось.




Это сообщение отредактировал(а) dizel003 - 1.11.2011, 22:39
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0420 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.