Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на C / C++


Хостинг Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг на Windows 2008

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

Чемпионы рейтинга экспертов в этой рассылке

Micren
Статус: Студент
Рейтинг: 154
∙ повысить рейтинг >>
Николай // Programmator
Статус: Студент
Рейтинг: 141
∙ повысить рейтинг >>
Лысков Игорь Витальевич
Статус: Профессионал
Рейтинг: 130
∙ повысить рейтинг >>

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / C/C++

Выпуск № 1226
от 28.01.2009, 11:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 473, Экспертов: 43
В номере:Вопросов: 2, Ответов: 4

Нам важно Ваше мнение об этой рассылке.
Оценить этот выпуск рассылки >>

Вопрос № 158420: помогите написать функцию,которая принимает дробное значение,а возвращает целое,равное округленному дробному(на Си)...


Вопрос № 158446: Помогите решить задачу плиззз!!!!! сказали написать с помощью масивов!!!! вот цик который считает for(int i=0;(i<h)&&(A[i]'='10');i++) пользователь вводит строку, программа выводит на экран все символы которые есть в строке и...

Вопрос № 158.420
помогите написать функцию,которая принимает дробное значение,а возвращает целое,равное округленному дробному(на Си)
Отправлен: 22.01.2009, 12:12
Вопрос задала: Freya (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Лысков Игорь Витальевич
Здравствуйте, Freya!
Стандартное приведение вещественного к целому i=(int) f отбрасывает дробную часть (округляет к 0), а не к ближайшему.
Поэтому можно, например, создать вот такую функцию:
Код:
int ftoi(double f)
{
return(f+0.5);
}

---------
Удачи!
Ответ отправил: Лысков Игорь Витальевич (статус: Профессионал)
Украина, Кировоград
ICQ: 234137952
----
Ответ отправлен: 22.01.2009, 12:47

Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 241810 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Отвечает: Ilkras
    Здравствуйте, Freya!
    В предыдущем ответе вы получили округление к близжайшему значению.
    Может быть просто:
    int func (float x) { return ((int)x);} будет достаточно.
    Может быть вам надо вернуть величину типа float, тогда:
    float func(float x){return((float)(int)x);}
    "округленное дробное" можно понять и так и эдак.
    Можете уточнить на форуме.
    Удачи.
    Ответ отправил: Ilkras (статус: Студент)
    Ответ отправлен: 22.01.2009, 13:12

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 241813 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Вопрос № 158.446
    Помогите решить задачу плиззз!!!!!
    сказали написать с помощью масивов!!!! вот цик который считает for(int i=0;(i<h)&&(A[i]'='10');i++)
    пользователь вводит строку, программа выводит на экран все символы которые есть в строке и сколько раз они повторяются


    © Цитата:
    Отправлен: 22.01.2009, 16:40
    Вопрос задал: Понаморенко Андрей Андреевич (статус: Посетитель)
    Всего ответов: 2
    Мини-форум вопроса >>> (сообщений: 2)

    Отвечает: Елисеев Андрей Александрович
    Здравствуйте, Понаморенко Андрей Андреевич!
    Немного не понял зачем вы написали цикл. Вот мое решение вашей задачи



    #include <conio.h>
    #include <stdio.h>

    //структура в которой два поля. symbol хранит символ, count хранит количество его вхождения
    struct rec {
    char symbol;
    int count;

    };

    int main(int argc, char* argv[])
    {
    char s; //переменная содержит текущий набранный символ
    rec mass[256]; // массив вышеописанных структур для всех возможных символов (их 256)
    for(int i=0;i<256;i++) { //циклом инициализируем элементы массива
    mass[i].symbol=(char)i; //поле symbol всех элементов массива, т.е. присваиваем им все возможные значения от кода 0 до 255
    mass[i].count = 0; //счетчик вхождений для каждого символа ставим в ноль
    }
    while(1) { //запускаем бесконечный цикл в нем будем считать вхождение каждого символа
    s = getche(); //получим символ с кла виатуры
    if(s == 13) break; //если нажат Enter то выйдем из цикла
    mass[(int)s].count++; //увеличим счетчик вхождений для символа с соответствующим кодом на единицу
    }

    for(int i = 0; i < 256; i++) { // выведем статистику
    if(mass[i].count) //только для тех символов у которых счетчик отличен от нуля
    printf("Symbol: '%c' Count: %d ", mass[i].symbol, mass[i].count); //собственно вывод

    }
    getch(); //ждем нажатия клавиатуры (чтобы окошко не исчезло сразу)
    return 0;
    }
    Ответ отправил: Елисеев Андрей Александрович (статус: 1-й класс)
    Ответ отправлен: 22.01.2009, 17:23

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 241841 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!

    Оценка за ответ: 5
    Комментарий оценки:
    МЕГАСПАСИБИЩЕ!!!!


    Отвечает: Micren
    Здравствуйте, Понаморенко Андрей Андреевич!
    Не ясно при чем тут цикл Вами написанный. Вот программа на C++. Программа тестировалась на MS Visual Studio 2008.

    Приложение:

    Ответ отправил: Micren (статус: Студент)
    Ответ отправлен: 22.01.2009, 20:03

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 241867 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!

    Оценка за ответ: 5
    Комментарий оценки:
    ОГРОМНОЕ СПАСИБО!!!!


    Вы имеете возможность оценить этот выпуск рассылки.
    Нам очень важно Ваше мнение!
    Оценить этот выпуск рассылки >>

    Отправить вопрос экспертам этой рассылки

    Приложение (если необходимо):

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

    Обратите внимание!
    Вопрос будет отправлен всем экспертам данной рассылки!

    Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
    экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


    Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
    Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров >>

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.


    © 2001-2009, Портал RusFAQ.ru, Россия, Москва.
    Авторское право: ООО "Мастер-Эксперт Про"
    Техподдержка портала, тел.: +7 (926) 535-23-31
    Хостинг: "Московский хостер"
    Поддержка: "Московский дизайнер"
    Авторские права | Реклама на портале

    ∙ Версия системы: 5.13 от 01.12.2008

    Яндекс Rambler's Top100
    RusFAQ.ru | MosHoster.ru | MosDesigner.ru
    RusIRC.ru | Kalashnikoff.ru | RadioLeader.ru

    В избранное