IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

> Вещественные числа, turbo C
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 15
Пол: Мужской
Реальное имя: Иван

Репутация: -  0  +


Здравствуйте, ктонить подскажите плиз...
Дана задача:
Найти из трех вещественных положительных чисел, хранящихся в переменных a,b,c, то число, которое имеет наибольшую дробную. На экран вывести найденное число и его дробную часть. Исходные числа ввести с клавиатуры.


#include <stdio.h>;

int a,b,c,k
main();
{
if (float(a) < float(b))
k=float(b);
if (float(b) < float©)
k= float©;
printf(k);
getch()
}


Я тут сделал набросок...
Вопрос заключается в следующем: Какие еще нужно включать библиотеки? Как вывести на экран исходное число? И правильно ли вообще решено? blink.gif
СПАСИБО ЗАРАНЕЕ give_rose.gif




М
Пользуемся тегами !

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 9)
сообщение
Сообщение #2


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


задача кстати похожая решалась недавно ...

Дробная часть числа :


float pi = 3.14159;
float ost = pi - (int)pi;





Вот, посмотри


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 15
Пол: Мужской
Реальное имя: Иван

Репутация: -  0  +


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


Да и еще можете объяснить какие библиотеки надо тут включать... или одной достаточно?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Смотри ничего сложного ...

# include <stdio.h>

int main(void)
{
float a, b, c, max;

printf("a = "); scanf("%f", &a);
printf("b = "); scanf("%f", &b);
printf("c = "); scanf("%f", &c);

max = a;

if ((b - (int)b) > (max - (int)max))
max = b;

if ((c - (int)c) > (max - (int)max))
max = c;

printf("Value = %2.5f, Rest = %2.5f", max, max - (int)max);

return 0;
}


или так :

# include <stdio.h>

int main(void)
{
float value, max;

printf("Input 3 values\n");

max = - 1;

for (int i = 0; i < 3; i++)
{
scanf("%f", &value);
if ((max < 0) || ((value - (int)value) > (max - (int)max)))
max = value;
}

printf("Value = %2.5f, Rest = %2.5f", max, max - (int)max);

return 0;
}


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Гость






Андрей, первый вариант ни разу не правильный smile.gif Попробуй такие данные:
  a = 2.996; b = 3.128; c = 4.975;
У тебя получится, что Value = Rest ... blum.gif
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Исправил
rolleyes.gif


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Новичок
*

Группа: Пользователи
Сообщений: 15
Пол: Мужской
Реальное имя: Иван

Репутация: -  0  +


СПАСИБО большое народ!!!=)
Просто тока начили изучать, а препод ничего нормально объяснить не может... norespect.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Новичок
*

Группа: Пользователи
Сообщений: 15
Пол: Мужской
Реальное имя: Иван

Репутация: -  0  +


И еще один вопрос...

Не подскажите что обозначают следующие строки:

"%f",

"Value = %2.5f, Rest = %2.5f"

а то я что то не могу найти в учебнике что это такое...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


форматный вывод printf(char *format, ...)

%f - для вывода числа типа float
%2.5f - выводится число с плавающей сточкой, под число резервируется 2 позиции, после запятой печатаются первые 5 знаков.

"Value = %2.5f, Rest = %2.5f"


В консоль выведется : "Value = " (первый аргумент в соответсвии с форматом %2.5f) ", Rest = " (второй аргумент в соответсвии с форматом %2.5f)

Где первый аргумент: max
Второй: max - (int)max



ps Плохой учебник у тебя ;)


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Новичок
*

Группа: Пользователи
Сообщений: 15
Пол: Мужской
Реальное имя: Иван

Репутация: -  0  +


Спасибо good.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 29.03.2024 7:32
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name