в начале C программирования с использованием методов - PullRequest
1 голос
/ 22 января 2012

Я новичок в C, и мне нужно попросить пользователя ввести бегунки для 100-метровой черты и преобразовать время, чтобы показать, сколько метров пройдено и сколько миль и километров конвертировано из входных данных.время, используя данные преобразования и используя методы для его производства.Вот мой код:

#include<stdio.h>
#include<conio.h>

double getMeters (double time){
  double m = 100/time;
  return m;
}

 double getFeet (double time) {
   double ft = (100/time) * 3.280839895;
   return ft;
}

double getKm (double time){
   double km = (100/time) * 1000 / 3600;
   return km;
}

double getMiles (double time){
  double mi = (100/time) * 1000/ 3600 * 1.6;
  return mi;
}

void main() {
  double time, m, mi, km, ft;
  printf("\nPlease enter the winning time of the race: " );
  scanf("%f",&time);
  m = getMeters(time);
  printf("\n %.2f meters per second", m);
  ft = getFeet(time);
  printf("\n %.2f feet per second", ft);
  km = getKm(time);
  printf("\n %.2f kilometers per hour", km);
  mi = getMiles(time);
  printf("\n %.2f miles per hour", mi);
  printf("\n");
  return 0;
}

На выходе должны быть все числа типа double, но все, что я получаю при запуске, составляет 0,00 для каждой вещи.Почему не работает ??!?Помощь будет оценена.

Ответы [ 2 ]

3 голосов
/ 22 января 2012

gcc довольно ясно указывает на проблему:

$ gcc foo.c
foo.c: In function ‘main’:
foo.c:26: warning: format ‘%f’ expects type ‘float *’, but argument 2 has type ‘double *’
2 голосов
/ 22 января 2012

чтобы прочитать двойное число, вы должны использовать %lf вместо %f.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...