Я делаю калькулятор конвертера единиц (игнорируйте имена функций, для которых они переставлены), и я пытаюсь сохранить введенный пользователем символ char
(т. Е. M, g или c) дляпредставляют собой единицу, которую они хотят преобразовать.Мой код застревает в функции scanf()
, и я не уверен, почему он не займет один символ char
, когда я указываю длину userUnit
array
в 2 (один для хранения нулевого терминатора).Есть мысли?
#include <stdio.h>
//Function prototypes
double fahrToCelc(double cel);
double meterToFoot(double foot);
double poundToGram(double pound);
int main(){
double conversions;
char userUnit[2];
char letter[4] = "gmc";
//User inputs
scanf("%lf %s",&conversions, userUnit);
if(userUnit[0] == letter[0]){
printf("%.6lf lb",poundToGram(conversions));
}else if(userUnit[0] == letter[1]){
printf("%.6lf ft",meterToFoot(conversions));
}else if(userUnit[0] == letter[2]){
printf("%.6lf f",fahrToCelc(conversions));
}
return 0;
}
//Function declarations
double fahrToCelc(double cel){
double fahr = 32 +(1.8*cel);
return printf("%lf",fahr);
}
double meterToFoot(double meter){
double foot = meter*0.3048;
return printf("%lf", foot);
}
double poundToGram(double gram){
double pound = gram/0.002205;
return printf("%lf",pound);
}