Guest User

Untitled

a guest
Jun 23rd, 2018
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.60 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. double celToKel(double cel){
  5. return cel + 273.0;
  6. }
  7.  
  8. double kelToCel(double kel){
  9. return kel - 273.0;
  10. }
  11.  
  12. double celToFahr(double cel){
  13. return cel * 1.8 + 32.0;
  14. }
  15.  
  16. double fahrToCel(double fahr){
  17. return (fahr - 32) / 1.8;
  18. }
  19.  
  20. void absoluteZero(double kelvin){
  21. if(kelvin < 0){
  22. printf("WARNING! %.2f is below 0 Kelvin which is impossible - 0 Kelvin is Absolute Zero!\n Where molecules don't move.", kelvin);
  23. exit(1);
  24. }
  25. }
  26.  
  27. void usage(char * app){
  28. printf("USAGE:\n\t%s <temperature value> [c|C|f|F|k|k]\n", app);
  29. exit(1);
  30. }
  31.  
  32. int main(int argc, char * argv[]) {
  33. if(argc != 3){
  34. usage(argv[0]);
  35. }
  36.  
  37. double inputTemp = atof(argv[1]);
  38. double fahrenheit = 0.0;
  39. double celsius = 0.0;
  40. double kelvin = 0.0;
  41.  
  42. switch (argv[2][0]){
  43. case 'c':
  44. case 'C':
  45. celsius = inputTemp;
  46. fahrenheit = celToFahr(celsius);
  47. kelvin = celToKel(celsius);
  48. absoluteZero(kelvin);
  49. break;
  50. case 'f':
  51. case 'F':
  52. fahrenheit = inputTemp;
  53. celsius = fahrToCel(fahrenheit);
  54. kelvin = celToKel(celsius);
  55. absoluteZero(kelvin);
  56. break;
  57. case 'k':
  58. case 'K':
  59. kelvin = inputTemp;
  60. absoluteZero(kelvin);
  61. celsius = kelToCel(kelvin);
  62. fahrenheit = celToFahr(celsius);
  63. break;
  64. default:
  65. usage(argv[0]);
  66. }
  67.  
  68. printf("temperature:\n\t%.2f Kelvin\n\t%.2f Celsius\n\t%.2f Fahrenheit\n", kelvin, celsius, fahrenheit);
  69. return 0;
  70. }
Add Comment
Please, Sign In to add comment