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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Функции 
V
    Опции темы
CatGav
Дата 16.11.2012, 16:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Всем привет. Программка с использованием пользовательской функции должна возвращять среднее арифмитическое значение целых чисел (от 3 до 5) Значение чисел задавать с использованием генератора случайных чисел.
Теперь мои вопросы.
1.Как записать сумму элементов в моем генираторе случайных чисел
2. Записал для проверки работы (res=5+8; //) но он ее не возрашает
В чем тут мои ошибки?

Код



#include "stdafx.h"
#include "iostream"
#include "conio.h"
#include <cstdlib>
#include <time.h>

using namespace std;

int sum(int );
int main(array<System::String ^> ^args)
{
    cout << "vvedite c= ";
    int c = 0;
    cin >> c;
    
    if (c>2 && c<6)
    {
    int z = sum(c);    
    cout << z << endl;
    }


    else
    {
        cout <<" Oshibka"<<endl;
    } 
   
    
    _getch();
    return 0;
}


int sum (int a)   
{
    int res;
    int n;
    int k;
    n=a;
    srand(time(NULL));
    for(int i=1; i<n; i++)
    cout << rand() % 100 + 1<< " ";
    cin.get();
    return 0;
    res=5+8; //записать сумму элементов гениратора чисел  и поделить на количество "n"
  return res;
   
}
    












PM MAIL   Вверх
feodorv
Дата 16.11.2012, 16:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2214
Регистрация: 30.7.2011

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



Цитата(CatGav @  16.11.2012,  17:31 Найти цитируемый пост)
Записал для проверки работы (res=5+8; //) но он ее не возрашает

Потому что перед этим он возвращает 0.
Цитата(CatGav @  16.11.2012,  17:31 Найти цитируемый пост)
    return 0;



Цитата(CatGav @  16.11.2012,  17:31 Найти цитируемый пост)
Как записать сумму элементов в моем генираторе случайных чисел

Как минимум их нужно суммировать, а не просто выдавать на печать:
Цитата(CatGav @  16.11.2012,  17:31 Найти цитируемый пост)
    cout << rand() % 100 + 1<< " ";

 smile 


--------------------
Напильник, велосипед, грабли и костыли - основные инструменты программиста...
PM MAIL   Вверх
baldina
Дата 16.11.2012, 17:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

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



Цитата(CatGav @  16.11.2012,  16:31 Найти цитируемый пост)
.Как записать сумму элементов в моем генираторе случайных чисел

завести переменную, скажем, X, инициализировать её нулем.
в цикле генерировать случайное число и прибавлять его к X.
Код

int X=0;
for (...) {
  X += rand(...);
}


Добавлено через 4 минуты и 55 секунд
Цитата(CatGav @  16.11.2012,  16:31 Найти цитируемый пост)
среднее арифмитическое значение целых чисел

будет целым числом, т.е. округлено до целого вниз. например (1+2+3+4)/4 в целых числах будет равно 2. вам действительно нужен такой результат, а не 2.5?

Это сообщение отредактировал(а) baldina - 16.11.2012, 17:08
PM MAIL   Вверх
CatGav
Дата 16.11.2012, 17:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



будет целым числом, т.е. округлено до целого вниз. например (1+2+3+4)/4 в целых числах будет равно 2. вам действительно нужен такой результат, а не 2.5?

Де действительно надо чтоб было 2.5 Тогда как я понял в этих строчках int нужно заменить на float? 
 int sum(int ); 
 int sum (int a) 
 int z = sum©; 

Это сообщение отредактировал(а) CatGav - 16.11.2012, 17:26
PM MAIL   Вверх
baldina
Дата 16.11.2012, 17:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

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



Цитата(CatGav @  16.11.2012,  17:25 Найти цитируемый пост)
Тогда как я понял в этих строчках int нужно заменить на float? 

при вычислениях достаточно, что бы один аргумент в выражении был типа float или double, например 
Код

double(X) / n;

и еще возвращаемое значение:
Код

double sum (int n);


Добавлено через 10 минут и 34 секунды
вот пример функции с целыми аргументами и действительным результатом
http://codepad.org/oeGk1mtu
PM MAIL   Вверх
CatGav
Дата 16.11.2012, 18:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Как я понял цикл записан у меня не верно. Мне нужно кроме возрашения среднего значения, еше чтоб в самой функции печатались рандомные элементы. вот исправленный код 


Код


#include "stdafx.h"
#include "iostream"
#include "conio.h"
#include <cstdlib>
#include <time.h>

using namespace std;

double sum(int );
int main(array<System::String ^> ^args)
{
    cout << "vvedite c= ";
    int c = 0;
    cin >> c;
    
    if (c>2 && c<6)
    {
    double z = sum(c);    
    cout <<" sred zna4enie " << z << endl;
    }

    else
    {
        cout <<" Oshibka"<<endl;
    } 
   
    _getch();
    return 0;
}


double sum (int a)   
{
    double res;
    int n;
    n=a;
    int x=0;
    srand(time(NULL));
    for(int i=0; i<n; i++)
{  
    cout << rand() % 100 + 1<< " ";
    x=+rand() % 100 + 1;
}
    res=x/n; 
    cin.get(); 
    return res;

}
 
    













Это сообщение отредактировал(а) CatGav - 16.11.2012, 18:13
PM MAIL   Вверх
feodorv
Дата 16.11.2012, 18:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2214
Регистрация: 30.7.2011

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



Цитата(CatGav @  16.11.2012,  19:09 Найти цитируемый пост)
вот исправленный код

И сейчас неверно. Печатаете одно, суммируете другое))) Да и суммируете как-то странно...
Цитата(CatGav @  16.11.2012,  19:09 Найти цитируемый пост)
    for(int i=0; i<n; i++)
{  
    cout << rand() % 100 + 1<< " ";
    x=+rand() % 100 + 1;
}

Переделываем:
Код

for(int i=0; i<n; i++)
{  
    int v = rand() % 100 + 1;
    cout << v << " ";
    x += v;
}



--------------------
Напильник, велосипед, грабли и костыли - основные инструменты программиста...
PM MAIL   Вверх
CatGav
Дата 16.11.2012, 18:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Большое спасибо, все работает как надо =)
PM MAIL   Вверх
xvr
Дата 19.11.2012, 13:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

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



Вот за это -
Цитата(CatGav @  16.11.2012,  16:31 Найти цитируемый пост)
int main(array<System::String ^> ^args)

на месте преподавателя я бы вас сразу расстрелял из рогатки  smile Вам действительно нужен именно С++ под .NET, или это вы просто по незнанию ткнули в VS при создании проекта куда попало?

PM MAIL   Вверх
CatGav
  Дата 19.11.2012, 19:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(xvr @ 19.11.2012,  13:51)
Вот за это -
Цитата(CatGav @  16.11.2012,  16:31 Найти цитируемый пост)
int main(array<System::String ^> ^args)

на месте преподавателя я бы вас сразу расстрелял из рогатки  smile Вам действительно нужен именно С++ под .NET, или это вы просто по незнанию ткнули в VS при создании проекта куда попало?

Было при создании проекта, решил не трогать

Это сообщение отредактировал(а) CatGav - 19.11.2012, 19:27
PM MAIL   Вверх
xvr
Дата 19.11.2012, 21:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

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



Цитата(CatGav @  19.11.2012,  19:25 Найти цитируемый пост)
Было при создании проекта, решил не трогать

Т.е. ткнули при создании проекта куда не надо. Пока не поздно - сделайте новый проект, не CLR/NET а обычный Win32. То, что вы сделали не является нормальным С++ языком. У вас могут проявиться самые разнообразные глюки, которые вы потом будете долго ловить  smile 


Это сообщение отредактировал(а) xvr - 19.11.2012, 21:19
PM MAIL   Вверх
CatGav
Дата 19.11.2012, 21:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Хмм. Может я не правильно понял вопрос, но у меня в условиях написано " выбрать приложение для Visual C++ и CLR Console Application "
PM MAIL   Вверх
xvr
Дата 19.11.2012, 22:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

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



Цитата(CatGav @  19.11.2012,  21:37 Найти цитируемый пост)
 но у меня в условиях написано " выбрать приложение для Visual C++ и CLR Console Application "

Чрезвычайно странные условия  smile В таком случае у вас все написано правильно.

PM MAIL   Вверх
teac2012
Дата 5.12.2012, 15:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



//
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


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

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


 




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


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

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