LINUX.ORG.RU

История изменений

Исправление kim-roader, (текущая версия) :

В общем если ты просто вынесешь запрос строки в отдельную процедуру, то ты легко избавишься от дублирования кода.

#include <stdio.h>

#define FT 30.48
#define INCH 2.54

float request_input() {
  float sm = 0;
  printf("Введите высоту в сантиметрах (<=0 для выхода из программы): ");
  scanf("%f", &sm);
  return sm; // Если scanf завершился неудачно, то sm не изменится и мы вернём 0.
}

int main(void) {
  int ftInt;
  float sm;
  double ftDouble, inch;
  while ((sm = request_input()) > 0) {
    ftInt = sm / FT;
    ftDouble = sm / FT;
    inch = ((ftDouble - ftInt) * FT) / INCH;
    printf("%.1f см = %d футов, %.1f дюймов\n", sm, ftInt, inch);
  }
  printf("Работа завершена.\n");
  return 0;
}

Исходная версия kim-roader, :

В общем если ты просто вынесешь запрос строки в отдельную процедуру, то ты легко избавишься от дублирования кода.

#include <stdio.h>

#define FT 30.48
#define INCH 2.54

float request_input () {
  float sm = 0;
  printf("Введите высоту в сантиметрах (<=0 для выхода из программы): ");
  scanf("%f", &sm);
  return sm; // Если scanf завершился неудачно, то sm не изменится и мы вернём 0.
}

int main(void) {
  int ftInt;
  float sm;
  double ftDouble, inch;
  while ((sm = request_input ()) > 0) {
    ftInt = sm / FT;
    ftDouble = sm / FT;
    inch = ((ftDouble - ftInt) * FT) / INCH;
    printf("%.1f см = %d футов, %.1f дюймов\n", sm, ftInt, inch);
  }
  printf("Работа завершена.\n");
  return 0;
}