Помощь - Поиск - Пользователи - Календарь
Полная версия: Вещественные числа
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Ада и другие языки
Evernes
Здравствуйте, ктонить подскажите плиз...
Дана задача:
Найти из трех вещественных положительных чисел, хранящихся в переменных 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




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

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

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


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





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


Да и еще можете объяснить какие библиотеки надо тут включать... или одной достаточно?
klem4
Смотри ничего сложного ...

# 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;
}
volvo
Андрей, первый вариант ни разу не правильный smile.gif Попробуй такие данные:
  a = 2.996; b = 3.128; c = 4.975;
У тебя получится, что Value = Rest ... blum.gif
klem4
Исправил
rolleyes.gif
Evernes
СПАСИБО большое народ!!!=)
Просто тока начили изучать, а препод ничего нормально объяснить не может... norespect.gif
Evernes
И еще один вопрос...

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

"%f",

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

а то я что то не могу найти в учебнике что это такое...
klem4
форматный вывод 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 Плохой учебник у тебя ;)
Evernes
Спасибо good.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.