Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- double celToKel(double cel){
- return cel + 273.0;
- }
- double kelToCel(double kel){
- return kel - 273.0;
- }
- double celToFahr(double cel){
- return cel * 1.8 + 32.0;
- }
- double fahrToCel(double fahr){
- return (fahr - 32) / 1.8;
- }
- void absoluteZero(double kelvin){
- if(kelvin < 0){
- printf("WARNING! %.2f is below 0 Kelvin which is impossible - 0 Kelvin is Absolute Zero!\n Where molecules don't move.", kelvin);
- exit(1);
- }
- }
- void usage(char * app){
- printf("USAGE:\n\t%s <temperature value> [c|C|f|F|k|k]\n", app);
- exit(1);
- }
- int main(int argc, char * argv[]) {
- if(argc != 3){
- usage(argv[0]);
- }
- double inputTemp = atof(argv[1]);
- double fahrenheit = 0.0;
- double celsius = 0.0;
- double kelvin = 0.0;
- switch (argv[2][0]){
- case 'c':
- case 'C':
- celsius = inputTemp;
- fahrenheit = celToFahr(celsius);
- kelvin = celToKel(celsius);
- absoluteZero(kelvin);
- break;
- case 'f':
- case 'F':
- fahrenheit = inputTemp;
- celsius = fahrToCel(fahrenheit);
- kelvin = celToKel(celsius);
- absoluteZero(kelvin);
- break;
- case 'k':
- case 'K':
- kelvin = inputTemp;
- absoluteZero(kelvin);
- celsius = kelToCel(kelvin);
- fahrenheit = celToFahr(celsius);
- break;
- default:
- usage(argv[0]);
- }
- printf("temperature:\n\t%.2f Kelvin\n\t%.2f Celsius\n\t%.2f Fahrenheit\n", kelvin, celsius, fahrenheit);
- return 0;
- }
Add Comment
Please, Sign In to add comment