C: Temperature Conversion With Main Repeat
https://github.com/pereiradaniel/beginning_c/blob/master/ch3/exercises/3_1/exercise3_1.c
// Exercise 3-1
// Write a program that will first allow a user to choose one of two options:
// 1. Convert a temperature from degrees Celsius to degrees Fahrenheit.
// 2. Convert a temperature from degrees Fahrenheit to degrees Celsius.
// The program should then prompt for the temperature value to be entered and output the new value that results
// from the conversion. To convert from Celsius to Fahrenheit you can multiply the value by 1.8 and then add 32.
#include <stdio.h>
#include <ctype.h>
#define TOFARENHEIT(a) a*1.8+32.0
#define TOCELSIUS(a) (a-32.0)/1.8
int main(int argc, char* argv[])
{
int choice = 0; // Stores user's menu choice.
double temp = 0.0; // Stores user's temperature input.
char repeat = 'Y';
while (toupper(repeat)=='Y')
{
choice = 0;
while (choice == 0)
{
printf("Choose 1 or 2 from the following options:\n");
printf("\t1. Convert a temperature from degrees Celsius to degrees Fahrenheit.\n");
printf("\t2. Convert a temperature from degrees Fahrenheit to degrees Celsius.\n");
scanf(" %d", &choice);
if (choice != 1 && choice != 2)
{
printf("\nInvalid selection! Choose 1 or 2. Try again.\n");
choice = 0;
}
}
printf("Enter temperature to convert:\n");
scanf(" %lf", &temp);
if (choice == 1)
printf("\nConversion:\n%.2f celsius is %.2lf fahreneit.\n", temp, TOFARENHEIT(temp));
if (choice == 2)
printf("\nConversion:\n%.2f farenheit is %.2lf celsius.\n", temp, TOCELSIUS(temp));
printf("\nAgain? (Y to repeat, any other key to quit.)\n");
scanf(" %c", &repeat);
}
return 0;
}https://github.com/pereiradaniel/beginning_c/blob/master/ch3/exercises/3_1/exercise3_1.txt==19635== Memcheck, a memory error detector
==19635== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==19635== Using Valgrind-3.18.1 and LibVEX; rerun with -h for copyright info
==19635== Command: ./exercise3_1
==19635==
Choose 1 or 2 from the following options:
1. Convert a temperature from degrees Celsius to degrees Fahrenheit.
2. Convert a temperature from degrees Fahrenheit to degrees Celsius.
3
Invalid selection! Choose 1 or 2. Try again.
Choose 1 or 2 from the following options:
1. Convert a temperature from degrees Celsius to degrees Fahrenheit.
2. Convert a temperature from degrees Fahrenheit to degrees Celsius.
0
Invalid selection! Choose 1 or 2. Try again.
Choose 1 or 2 from the following options:
1. Convert a temperature from degrees Celsius to degrees Fahrenheit.
2. Convert a temperature from degrees Fahrenheit to degrees Celsius.
1
Enter temperature to convert:
27.0
Conversion:
27.00 celsius is 80.60 fahreneit.
Again? (Y to repeat, any other key to quit.)
y
Choose 1 or 2 from the following options:
1. Convert a temperature from degrees Celsius to degrees Fahrenheit.
2. Convert a temperature from degrees Fahrenheit to degrees Celsius.
2
Enter temperature to convert:
80.6
Conversion:
80.60 farenheit is 27.00 celsius.
Again? (Y to repeat, any other key to quit.)
n
==19635==
==19635== HEAP SUMMARY:
==19635== in use at exit: 0 bytes in 0 blocks
==19635== total heap usage: 2 allocs, 2 frees, 2,048 bytes allocated
==19635==
==19635== All heap blocks were freed -- no leaks are possible
==19635==
==19635== For lists of detected and suppressed errors, rerun with: -s
==19635== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)