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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.01.2010, 21:59   #1
ранетка
Новичок
Джуниор
 
Регистрация: 20.01.2010
Сообщений: 3
По умолчанию Десятичные дроби в С

Помогите пожалуйста с десятичными дробями в С.
Задали написать любую программу, исходя из пройденного материала, я решила считать промилле в крови, программу написала, но она не считает. Если в результате выходит целое число, то все ок, а если н-р 0,624, то сплошные нули выдает. Делала через флоат, ведь он для десятичных чисел.

Скажите, возможно ли в С работать с десятичными дробями, что я делаю не так?
ранетка вне форума Ответить с цитированием
Старый 20.01.2010, 22:21   #2
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,604
По умолчанию

Приведите свой код.
MaTBeu вне форума Ответить с цитированием
Старый 20.01.2010, 23:10   #3
ранетка
Новичок
Джуниор
 
Регистрация: 20.01.2010
Сообщений: 3
По умолчанию Код

Код:
#include <stdio.h>
#include <stdlib.h>


float anteil (int vm, int pm, int mm)
{
return vm*pm/(mm*70);      
}

float anteilw (int vm, int pm, int mm)
{
return vm*pm*(mm/60);      
}

int main(int argc, char *argv[])
{
  void man(void);
  printf("sex \n"); // Vyberete pol
  
  printf("man = m\n");
  printf("women = w\n");
  
  char sex;
  sex = getche();
  
  char m;
  char w;
  
     int v;
     int p;
     int h;
switch (sex)

{ 
       // for man
     case 'm':
     case 'M':
          
    printf("Geben Sie Volumen ein \n");// Vypito v grammah (n-r 700)
    scanf("%d", &v);
    
    printf("Geben Sie Prozent ein \n"); // Krepost, Gradus (n-r 5)
    scanf("%d", &p);
    
    printf("Geben Sie Gewicht ein \n"); // Ves tela (n-r 50)
    scanf("%d", &h);
    
    printf("Anteil %d % 3.3f",v, anteil (v, p, h)); 
    break;




    // for women
    case 'w':
    case 'W':
     
   
    printf("Geben Volumen Frau ein \n"); // Vypito v grammah (n-r 700)
    scanf("%d", &v);
    
    printf("Geben Sie Prozent Frau ein \n"); // Krepost, Gradus (n-r 5)
    scanf("%d", &p);
    
    printf("Geben Sie Gewicht frau ein \n"); // Ves tela (n-r 50)
    scanf("%d", &m);
    
    printf("Der Kreis mit dem Durchmesser %d hat einen Umfang von %f",v, anteilw (v, p, m));
    
    break;
            
    default:
    printf("Geben Sie m (maennlich) oder w (weiblich) \n");
    
    }
  
  printf("I dalsche \n");
  
  system("PAUSE");    
  return 0;
}
ранетка вне форума Ответить с цитированием
Старый 20.01.2010, 23:48   #4
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Так уж устроен C/C++, что результат вычисления операции с двумя интами будет инт, т.е.
Код:
int a = 11, b = 3;
double c = a / b;
В итоге c == 3. Чтобы результат был double (или float), в операции должны участвовать аргументы типов double (float). Вообще можете сделать так:
Код:
float anteil (float vm, float pm, float mm)
{
return vm*pm/(mm*70);      
}
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 21.01.2010, 00:08   #5
ранетка
Новичок
Джуниор
 
Регистрация: 20.01.2010
Сообщений: 3
По умолчанию

Уффф, спасибо большое, получилось, ну теперь можно дальше делать! Выручили!
ранетка вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Упрощение дроби k1r1ch Общие вопросы Delphi 2 10.10.2009 16:16
Период дроби! prosport91 Паскаль, Turbo Pascal, PascalABC.NET 0 09.06.2009 15:57
сокращение дроби Demonmov Microsoft Office Excel 4 15.04.2009 11:54
Десятичные дроби в двоичном виде Ukrajinec Помощь студентам 2 13.04.2009 11:29
Простые дроби 4aineg Паскаль, Turbo Pascal, PascalABC.NET 5 09.12.2006 15:01