Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.04.2013, 18:47   #11
Diana528
Форумчанин
 
Регистрация: 13.02.2013
Сообщений: 221
По умолчанию

ребят))) спасите меня пожалуйста)объясните в чем проблема

а как мне еще изобразить округление?

Последний раз редактировалось Stilet; 12.04.2013 в 19:14.
Diana528 вне форума Ответить с цитированием
Старый 12.04.2013, 19:18   #12
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

нужно писать
Код:
double round( double num)
  {
 return (num >= 0) ? (num + 0.5) : (num - 0.5);
}
Он же возвращает значение
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.04.2013, 19:59   #13
Diana528
Форумчанин
 
Регистрация: 13.02.2013
Сообщений: 221
По умолчанию

просто в задании сказано создать функцию типа void
Diana528 вне форума Ответить с цитированием
Старый 12.04.2013, 20:16   #14
Ezhik Kihze
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 639
По умолчанию

Код:
void round( double &num)
{
  num = (num >= 0) ? (num + 0.5) : (num - 0.5);
}
ICQ: 677936656 Gmail: ekEmbed@gmail.com
Ezhik Kihze вне форума Ответить с цитированием
Старый 12.04.2013, 20:24   #15
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Плюс к этому:
Код:
 round(num);
    
 cout<<"Chislo: "<<num;
I'm learning to live...

Последний раз редактировалось Stilet; 12.04.2013 в 21:22.
Stilet вне форума Ответить с цитированием
Старый 12.04.2013, 20:37   #16
Diana528
Форумчанин
 
Регистрация: 13.02.2013
Сообщений: 221
По умолчанию

Код:
#include <cstdlib>
#include <iostream>
#include <cmath>

using namespace std;

double modf(double num, double *i);

void round( double &num)
{
  num = (num >= 0) ? (num + 0.5) : (num - 0.5);
}     
int main()

{ 
    double i, num;
  
  cout<<"Vvedite chislo: ";
    cin>>num;
    
 num= round(&num);
    
 cout<<"Chislo: "<<num;

 
return 0;
}
что то не то кажется(
Diana528 вне форума Ответить с цитированием
Старый 12.04.2013, 21:20   #17
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Что не то?
Что пишет компилятор?
Сравни что мы написали и что ты написала.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.04.2013, 21:20   #18
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Цитата:
что то не то кажется(
Ну... да.
Совет, настоятельный: возьмите используемый Вами учебник C++ и прочтите его первые главы, с примерами программ, ещё раз. Если у Вас такого учебника нет - обзаведитесь: формат форума мало располагает к требующимся в Вашем случае пространным объяснениям.

Переменной можно присваивать возвращаемое функцией значение:
Код:
var = function(args);
Но. Это можно делать в том и только том случае, когда function возвращает что-то, что можно присвоить var. Ваш round возвращает void. Как уже сказано, void ничему присвоить нельзя. Поэтому (почти) единственный легитимный вызов round выглядит так:
Код:
round(num);
В модификации, предложенной Ezhik Kihze, round принимает аргумент по ссылке (если не знаете, что это означает - см. учебник/справочник/Википедию; коротко - значение аргумента в функции становится "связанным" с переданной переменной). Таким образом, после вызова Вашей функции значение переменной num в main изменится.
Abstraction вне форума Ответить с цитированием
Старый 12.04.2013, 22:49   #19
Diana528
Форумчанин
 
Регистрация: 13.02.2013
Сообщений: 221
По умолчанию

Код:
#include <cstdlib>
#include <iostream>
#include <cmath>

using namespace std;

double modf(double num, double *i);

void round( double &num)
{
  num = (num >= 0) ? (num + 0.5) : (num - 0.5);
}     
int main()

{ 
    double i, num;
  
  cout<<"Vvedite chislo: ";
    cin>>num;
    
round(&num);
    
 cout<<"Chislo: "<<num;

 
return 0;
}
21 D:\Ìîè äîêóìåíòû\main.cpp no matching function for call to `round(double*)'
note D:\Ïðîãðàììû\Dev-Cpp\include\math.h:672 candidates are: double round(double)
Diana528 вне форума Ответить с цитированием
Старый 12.04.2013, 23:13   #20
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Близко.
Смотрите ОЧЕНЬ внимательно на 15 пост (на то, как передается num).

&num - адрес, по которому хранится значение num
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Использование подпрограммы-функции: Вычислить значение функции (Турбо паскаль) RealUnited Паскаль, Turbo Pascal, PascalABC.NET 1 05.12.2012 20:34
Построение графика функции, мигание(затухание) шарика в минимумах функции kas1m_rus Паскаль, Turbo Pascal, PascalABC.NET 0 27.05.2012 20:28
Как подменить адрес возврата функции func на адрес функции f используя переполнение буфера buf и функции gets dmitrii6120 Помощь студентам 6 14.11.2011 20:10
Мини бэйсик:объявление функции, вызов функции , возврат. AL_LORD Помощь студентам 2 14.10.2010 17:48
Программа на СИ++, используя функции работы с файлами и функции <string.h> Аня Popova Фриланс 9 13.09.2010 15:52