Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdlib.h>
- #include <stdio.h>
- #include <math.h>
- double fahrToCels(double fahr);
- void inputFahrs(double * data, int numFahrs);
- void outputFahrs(double * data, int numFahrs);
- void outputAverage(const double * data, int numFahrs);
- void outputHighLows(const double * data, int numFahrs);
- void outputStdDev(const double * data, int numFahrs);
- int main() {
- int numFahrs;
- printf("Please enter the amount, between 1-20, of Fahrenheit temperatures > ");
- scanf("%i", &numFahrs);
- while (numFahrs > 20 || numFahrs < 1) {
- printf("That value is out of range\n");
- printf("Please enter the amount, between 1-20, of Fahrenheit temperatures > ");
- scanf("%i", &numFahrs);
- }
- double *data;
- data = (double *) malloc(sizeof (double) * numFahrs);
- inputFahrs(data, numFahrs);
- outputFahrs(data, numFahrs);
- outputAverage(data, numFahrs);
- outputHighLows(data, numFahrs);
- outputStdDev(data, numFahrs);
- free(data);
- return 0;
- }
- void inputFahrs(double * data, int numFahrs) {
- int i;
- for (i = 0; i < numFahrs; i++) {
- printf("Value [%i] > ", i);
- scanf("%lf", &data[i]);
- while (data[i] > 200.0 || data[i] < -200.0) {
- printf("Out of Range");
- printf("Re-enter Value");
- scanf("%lf", &data[i]);
- }
- }
- }
- double fahrToCels(double fahr) {
- return (fahr - 32) * 5 / 9;
- }
- void outputFahrs(double * data, int numFahrs) {
- /*selection sort*/
- int i, j, temp;
- for (i = 0; i < numFahrs; i++) {
- for (j = i + 1; j < numFahrs; j++) {
- if (data[i] > data[j]) {
- temp = data[i];
- data[i] = data[j];
- data[j] = temp;
- }
- }
- }
- printf(" Fahr Cels\n");
- printf(" ====== ======\n");
- for (i = 0; i < numFahrs; i++) {
- printf(" %10.1lf %10.1lf\n", data[i], fahrToCels(data[i]));
- }
- printf(" ====== ======\n");
- }
- void outputAverage(const double * data, int numFahrs) {
- double sumFahr = 0, sumCels = 0, Favg, Cavg;
- int i;
- for (i = 0; i < numFahrs; i++) {
- sumFahr = sumFahr + data[i];
- sumCels = sumCels + fahrToCels(data[i]);
- }
- Favg = sumFahr / numFahrs;
- Cavg = sumCels / numFahrs;
- printf("Average: %10.1lf %10.1lf\n\n", Favg, Cavg);
- }
- void outputHighLows(const double * data, int numFahrs) {
- int i;
- double Fhigh = data[0], Flow = data[0];
- for (i = 0; i < numFahrs; i++) {
- if (data[i] > Fhigh) {
- Fhigh = data[i];
- }
- if (data[i] < Flow) {
- Flow = data[i];
- }
- }
- double Chigh = fahrToCels(data[0]), Clow = fahrToCels(data[0]);
- for (i = 0; i < numFahrs; i++) {
- if (fahrToCels(data[i]) > Chigh) {
- Chigh = fahrToCels(data[i]);
- }
- if (fahrToCels(data[i]) < Clow) {
- Clow = fahrToCels(data[i]);
- }
- }
- printf("High: %10.1lf %10.1lf\n", Fhigh, Chigh);
- printf("Low: %10.1lf %10.1lf\n\n", Flow, Clow);
- }
- void outputStdDev(const double * data, int numFahrs) {
- double sumFahr = 0, Fstdsum = 0, Favg, Fstdavg;
- int i;
- for (i = 0; i < numFahrs; i++) {
- sumFahr = sumFahr + data[i];
- }
- Favg = sumFahr / numFahrs;
- for (i = 0; i < numFahrs; i++) {
- Fstdsum += (Favg - data[i]) * (Favg - data[i]);
- }
- Fstdavg = sqrt(Fstdsum / (numFahrs - 1));
- printf("Standard Deviation: %3.1lf\n", Fstdavg);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement