Мне было интересно, как я мог бы предложить конечному пользователю моей программы ввести значение, которое он хочет преобразовать из Фаренгейта в Цельсий в С.
По сути, так как я всего n00b иЯ пишу удивительные «программы», такие как эта:
//Simple program to convert Fahrenheit to Celsius
int main (int argc, char *argv[])
{
double celsius, fahrenheit, result;
celsius = result;
fahrenheit = 27;
result = (fahrenheit - 32) / 1.8;
printf("27 degress Fahrenheit is %g degrees Celsius!", result);
return 0;
}
Я хотел бы добавить к этому некоторую реальную «функциональность», если вы понимаете, о чем я.Вместо того, чтобы просто сделать это тестовой программой, где на самом деле она просто показывает некоторую простую оценку арифметических выражений, я бы хотел сделать ее несколько более полезной.
В любом случае, мне было интересно, смогу ли я использовать функцию, перечисленную в страница справки scanf (3) , чтобы помочь мне в распознавании введенных пользователем данных, а затем каким-то образом сохранить их в переменной Фаренгейта.
Теперь было бы здорово, если быПосле запуска программа может задать конечному пользователю вопрос, спрашивающий, хочет ли он или она перевести из градуса Цельсия в градусы Фаренгейта или из градуса Фаренгейта в градусы Цельсия, но давайте просто сделаем это шаг за шагом, и я подожду, покаЯ прочитал главу в моей книге о "Принятии решений"!:)
ОБНОВЛЕНИЕ:
Удаляет бесполезный переменный результат, как указано kiamlaluno:
//Simple program to convert Fahrenheit to Celsius
int main (int argc, char *argv[])
{
double fahrenheit, celsius;
fahrenheit = 27;
celsius = (fahrenheit - 32) / 1.8;
printf("27 degress Fahrenheit is %g degrees Celsius!", celsius);
return 0;
}
ОБНОВЛЕНИЕ ОБНОВЛЕНИЕ:
Я пытался включить все полезные предложения, опубликованные здесь, но у меня больше проблем с моим кодом:
//Simple program to convert Fahrenheit to Celsius and Celsius to Fahrenheit
int main (int argc, char *argv[])
{
int celsius, fahrenheit, celsiusResult, fahrenheitResult;
celsiusResult = (fahrenheit - 32)*(5/9);
fahrenheitResult = (celsius*(9/5)) + 32;
int prompt;
printf("Please press 1 to convert Fahrenheit to Celsius, or 0 to convert Celsius to Fahrenheit please:\n ");
scanf("%i", &prompt);
if(prompt == 1) {
printf("Please enter a temperature in Fahrenheit to be converted into Celsius!:\n");
scanf("%i", &fahrenheit);
printf("%i degress Fahrenheit is %i degrees Celsius!", fahrenheit, celsiusResult);
}
else {
printf("Please enter a temperature in Celsius to be converted into Fahrenheit:\n");
scanf("%i", &celsius);
printf("%i degreses Celsius is %i degrees Fahrenheit", celsius, fahrenheitResult);
}
return 0;
}
Все работает отлично, кроме самих вычислений,которые выходят совершенно неправильно .. На секунду я подумал, что это могло быть из-за того, что я изменил сами числа на типы целых чисел, но я снова сделал их двойными, и это все еще было немного странно.
Есть какие-нибудь мысли?