История изменений
Исправление 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;
}