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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.09.2013, 04:26   #1
s4egol
Пользователь
 
Регистрация: 05.09.2012
Сообщений: 56
По умолчанию вывод переменной в С

Короче суть в том что при выводе ( rez = a / l) переменная получает значение которое < 1 . именно поэтому выводиться вот такой результат 0.0000000. Как сделать так чтобы выводились тысячные десятитысячные и т.п. Просто ответ должен быть точным а получается что ответа не выводится. вот код проги:
Код:
#include "stdafx.h"
#include <stdio.h>
#include <iostream>


long fack(int);

int main()
{
    int m,n,l,a;
	double rez;
	scanf("%d%d",&m,&n);
	l = m  + n;
	l = fack(l);
	m = fack(m);
	n = fack(n);
	a = m + n;
	rez = a/l;
	printf("%f\n",rez);
	system("pause");
    return 0;
}

long fack(int a)
{
	if (a>1)
		return a * fack(a-1);
	else
	    return 1;
}
Что то читал там про этот вывод насчет плавающей точки, но не очень разобрался. Расчитываю на ваш опыт.

Последний раз редактировалось Stilet; 11.09.2013 в 09:39.
s4egol вне форума Ответить с цитированием
Старый 11.09.2013, 07:33   #2
was3110
Форумчанин
 
Аватар для was3110
 
Регистрация: 25.04.2010
Сообщений: 254
По умолчанию

Попробуйте так
Код:
 int main()
 {
 int m,n,l;
 double a,rez;
...
и о плавающей точке все же почитайте (т.е. разберитесь)
помогать студентам - моя вторая профессия
was3110 вне форума Ответить с цитированием
Старый 11.09.2013, 07:39   #3
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Код:
 rez = ((double)a ) / l
Poma][a вне форума Ответить с цитированием
Старый 11.09.2013, 07:42   #4
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,679
По умолчанию

А вывод можно сделать например так..
Код:
printf("%.3d\n",rez);
Например.........
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!
Bugrimov вне форума Ответить с цитированием
Старый 11.09.2013, 10:19   #5
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,323
По умолчанию

Раз Вы уж подключили <iostream>, то используйте cout и cin для вывода и ввода соответственно.

Посмотрите пример здесь: http://www.cplusplus.com/reference/ios/fixed/

Код:
#include <iostream>
using namespace std;

long fack(int);

int main() {
    int m, n, l, a;
    double rez;
    //scanf("%d%d", &m, &n);
    cin >> m >> n;
    cout << m;
    l = m + n;
    l = fack(l);
    m = fack(m);
    n = fack(n);
    a = m + n;
    rez = (double)a / l;
    //printf("%f\n", rez);
    cout << rez;
    //system("pause");
    return 0;
}

long fack(int a) {
    if (a > 1)
        return a * fack(a - 1);
    else
        return 1;
}
8Observer8 вне форума Ответить с цитированием
Старый 11.09.2013, 10:56   #6
s4egol
Пользователь
 
Регистрация: 05.09.2012
Сообщений: 56
По умолчанию

спасибо всем)
два первых ответа опробывал и так и так работает)
помошникам +)
s4egol вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод имени переменной C++ Alendorff Помощь студентам 2 05.03.2013 06:37
Вывод переменной на экран. hydr0 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 9 01.03.2012 16:06
вывод переменной из функции kirosin JavaScript, Ajax 4 07.10.2010 16:12
вывод переменной в поток на Си pysik Помощь студентам 2 17.08.2009 16:17