Advertisement
Guest User

Untitled

a guest
Jun 22nd, 2017
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.52 KB | None | 0 0
  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11. #include <stdlib.h>
  12. #include <stdio.h>
  13. #include <math.h>
  14.  
  15. double fahrToCels(double fahr);
  16. void inputFahrs(double * data, int numFahrs);
  17. void outputFahrs(double * data, int numFahrs);
  18. void outputAverage(const double * data, int numFahrs);
  19. void outputHighLows(const double * data, int numFahrs);
  20. void outputStdDev(const double * data, int numFahrs);
  21.  
  22. int main() {
  23. int numFahrs;
  24. printf("Please enter the amount, between 1-20, of Fahrenheit temperatures > ");
  25. scanf("%i", &numFahrs);
  26. while (numFahrs > 20 || numFahrs < 1) {
  27. printf("That value is out of range\n");
  28. printf("Please enter the amount, between 1-20, of Fahrenheit temperatures > ");
  29. scanf("%i", &numFahrs);
  30. }
  31. double *data;
  32. data = (double *) malloc(sizeof (double) * numFahrs);
  33.  
  34. inputFahrs(data, numFahrs);
  35. outputFahrs(data, numFahrs);
  36. outputAverage(data, numFahrs);
  37. outputHighLows(data, numFahrs);
  38. outputStdDev(data, numFahrs);
  39.  
  40. free(data);
  41. return 0;
  42. }
  43.  
  44. void inputFahrs(double * data, int numFahrs) {
  45. int i;
  46. for (i = 0; i < numFahrs; i++) {
  47. printf("Value [%i] > ", i);
  48. scanf("%lf", &data[i]);
  49. while (data[i] > 200.0 || data[i] < -200.0) {
  50. printf("Out of Range");
  51. printf("Re-enter Value");
  52. scanf("%lf", &data[i]);
  53. }
  54. }
  55. }
  56.  
  57. double fahrToCels(double fahr) {
  58. return (fahr - 32) * 5 / 9;
  59. }
  60.  
  61. void outputFahrs(double * data, int numFahrs) {
  62. /*selection sort*/
  63. int i, j, temp;
  64. for (i = 0; i < numFahrs; i++) {
  65. for (j = i + 1; j < numFahrs; j++) {
  66. if (data[i] > data[j]) {
  67. temp = data[i];
  68. data[i] = data[j];
  69. data[j] = temp;
  70. }
  71. }
  72.  
  73. }
  74. printf(" Fahr Cels\n");
  75. printf(" ====== ======\n");
  76. for (i = 0; i < numFahrs; i++) {
  77.  
  78. printf(" %10.1lf %10.1lf\n", data[i], fahrToCels(data[i]));
  79. }
  80. printf(" ====== ======\n");
  81. }
  82.  
  83. void outputAverage(const double * data, int numFahrs) {
  84. double sumFahr = 0, sumCels = 0, Favg, Cavg;
  85. int i;
  86. for (i = 0; i < numFahrs; i++) {
  87. sumFahr = sumFahr + data[i];
  88. sumCels = sumCels + fahrToCels(data[i]);
  89. }
  90. Favg = sumFahr / numFahrs;
  91. Cavg = sumCels / numFahrs;
  92. printf("Average: %10.1lf %10.1lf\n\n", Favg, Cavg);
  93. }
  94.  
  95. void outputHighLows(const double * data, int numFahrs) {
  96. int i;
  97. double Fhigh = data[0], Flow = data[0];
  98.  
  99. for (i = 0; i < numFahrs; i++) {
  100. if (data[i] > Fhigh) {
  101. Fhigh = data[i];
  102. }
  103. if (data[i] < Flow) {
  104. Flow = data[i];
  105. }
  106. }
  107.  
  108. double Chigh = fahrToCels(data[0]), Clow = fahrToCels(data[0]);
  109. for (i = 0; i < numFahrs; i++) {
  110. if (fahrToCels(data[i]) > Chigh) {
  111. Chigh = fahrToCels(data[i]);
  112. }
  113. if (fahrToCels(data[i]) < Clow) {
  114. Clow = fahrToCels(data[i]);
  115. }
  116. }
  117. printf("High: %10.1lf %10.1lf\n", Fhigh, Chigh);
  118. printf("Low: %10.1lf %10.1lf\n\n", Flow, Clow);
  119. }
  120.  
  121. void outputStdDev(const double * data, int numFahrs) {
  122. double sumFahr = 0, Fstdsum = 0, Favg, Fstdavg;
  123. int i;
  124. for (i = 0; i < numFahrs; i++) {
  125. sumFahr = sumFahr + data[i];
  126. }
  127. Favg = sumFahr / numFahrs;
  128.  
  129. for (i = 0; i < numFahrs; i++) {
  130. Fstdsum += (Favg - data[i]) * (Favg - data[i]);
  131. }
  132. Fstdavg = sqrt(Fstdsum / (numFahrs - 1));
  133. printf("Standard Deviation: %3.1lf\n", Fstdavg);
  134. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement