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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.03.2012, 19:34   #1
ArmanPrestige
Главное желание.
Форумчанин
 
Регистрация: 28.11.2011
Сообщений: 122
По умолчанию Большая точность

Дана рациональная дробь m/n. Запишите её в виде десятичной дроби с точностью k знаков после запятой.

Как реализовать точность знаков после запятой? пробовал так - естественно не получилось....


Код:
#include <stdio.h>
void main()
{
	double Answer;
	int a,b,c;
	printf("Enter 3 nubmers: ");
	scanf("%d%d%d",&a,&b,&c);
	Answer=(double)a/b;
	printf("%.clf\n",Answer);
}
Я могу, Я хочу, Я буду!
ArmanPrestige вне форума Ответить с цитированием
Старый 17.03.2012, 20:40   #2
microbit
Форумчанин
 
Аватар для microbit
 
Регистрация: 26.09.2011
Сообщений: 176
По умолчанию

может так
Код:
#include <stdio.h>
void main()
{
	double Answer;
	int a,b,c;
	printf("Enter 3 nubmers: ");
	scanf("%d%d%d",&a,&b,&c);
	Answer=(double)a/b;
	char str[10];
	sprintf(str,"%%.%if",с);
	printf(str,Answer);
}
microbit вне форума Ответить с цитированием
Старый 17.03.2012, 20:45   #3
ArmanPrestige
Главное желание.
Форумчанин
 
Регистрация: 28.11.2011
Сообщений: 122
По умолчанию

Цитата:
Сообщение от microbit Посмотреть сообщение
может так
Код:
#include <stdio.h>
void main()
{
	double Answer;
	int a,b,c;
	printf("Enter 3 nubmers: ");
	scanf("%d%d%d",&a,&b,&c);
	Answer=(double)a/b;
	char str[10];
	sprintf(str,"%%.%if",с);
	printf(str,Answer);
}
А теперь не могли бы вы объяснить мне начиная со строки "char"?
Я могу, Я хочу, Я буду!
ArmanPrestige вне форума Ответить с цитированием
Старый 17.03.2012, 21:03   #4
microbit
Форумчанин
 
Аватар для microbit
 
Регистрация: 26.09.2011
Сообщений: 176
По умолчанию

формируете строку для вывода "%.сf" вместо "c" число разрядов после точки, после выводите.
microbit вне форума Ответить с цитированием
Старый 17.03.2012, 21:07   #5
ArmanPrestige
Главное желание.
Форумчанин
 
Регистрация: 28.11.2011
Сообщений: 122
По умолчанию

не пойму значение строки...( что такое sprintf?=(

sprintf(str,"%%.%if",с);
Я могу, Я хочу, Я буду!
ArmanPrestige вне форума Ответить с цитированием
Старый 17.03.2012, 21:13   #6
microbit
Форумчанин
 
Аватар для microbit
 
Регистрация: 26.09.2011
Сообщений: 176
По умолчанию

sprintf как printf только значение выводится не на экран а в массив.

sprintf(str,"%%.%if",с);
если с = 3 то в str формируется строка %.3f
microbit вне форума Ответить с цитированием
Старый 17.03.2012, 21:20   #7
ArmanPrestige
Главное желание.
Форумчанин
 
Регистрация: 28.11.2011
Сообщений: 122
По умолчанию

Цитата:
Сообщение от microbit Посмотреть сообщение
sprintf как printf только значение выводится не на экран а в массив.

sprintf(str,"%%.%if",с);
если с = 3 то в str формируется строка %.3f
понял, а почему вот тут "%%.%if"
1. три %?
2. что такое if в данном случае?
Я могу, Я хочу, Я буду!
ArmanPrestige вне форума Ответить с цитированием
Старый 18.03.2012, 01:15   #8
Granus
С++
Форумчанин
 
Аватар для Granus
 
Регистрация: 22.09.2008
Сообщений: 791
По умолчанию

Все равно больше знаков, чем поддерживает float, Вы так не получите.
Вот статейка, тут вычисляется немного другое, но идею поймете.
Форматируйте код, будьте людьми.
Granus вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Точность вычислений aly-lucenko Фриланс 1 02.05.2011 21:38
Точность вычисления Von Общие вопросы C/C++ 2 25.01.2011 17:45
Болшая точность Zeir Помощь студентам 6 10.10.2010 18:57
Точность обработки БД в С++ Maks7482 Общие вопросы C/C++ 3 23.08.2010 13:34
Точность Sour Помощь студентам 2 31.05.2007 21:08