Code:
// F to C Conversion and Sorting
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#define n 24
int main()
{
double f_to_c(double f_temp);
double temps[n];
double abe(int num_temps, double temps[]);
double average(int num_temps);
int num_temps;
int get_temps(int num_temps, double temps[]);
void temp_sort(double temps[],int num_temps);
double temp_output(double avg, double high, double low, int above,
double temps[], int below, int equal, int more100, int more32,
int less32, int num_temps);
double avg, high, low;
int above, below, equal, more100, more32, less32;
get_temps(num_temps,temps[n]);
temp_sort(temps[n],num_temps);
abe(num_temps,temps[n]);
average(num_temps);
temp_output(avg,high,low,above,temps[n],below,equal,more100
,more32,less32,num_temps);
return 0;
}
// Get temperatues
int get_temps(int num_temps, double temps[])
{
int i;
printf("How many temperatures are you going to enter:");
scanf("%i",&num_temps);
for (i=0;i<=num_temps-1;i++) {
printf("Enter a temperature (-150 to 150):");
scanf("%lf",&temps[i]);
if (temps[i] > 150 || temps[i] < -150) {
printf("Invalid range, try again (-150 to 150):");
i--;
}
}
return num_temps;
}
// Convert C to F
double f_to_c(double f_temp)
{
double cel;
cel = ((double)f_temp - 32) * 5 / 9;
return cel;
}
// Get average
double average(int num_temps)
{
int i;
double total=0;
double temps[24];
double avg;
for (i=0;i<=num_temps-1;i++){
total = total + temps[i];
}
avg = total / num_temps;
return avg;
}
// Above, below, equal
int abe (int num_temps, double temps[])
{
double avg;
int i,above=0,below=0,equal=0;
for (i=0;i<=num_temps-1;i++) {
if (temps[i] > avg) {
above++;
} else if (temps[i] < avg) {
below++;
} else {
equal++;
}
}
return above,below,equal;
}
// Ranges
double temp_ranges(int num_temps)
{
int i,more100,less32,more32;
double high,low,temps[24];
for (i=0;i<=num_temps-1;i++) {
if(temps[i] < low) {
low = temps[i];
}
if(temps[i] > high) {
high = temps[i];
}
if(temps[i] >= 100) {
more100++;
}
if(temps[i] <= 32) {
less32++;
}
if(temps[i] > 32 && temps[i] < 100) {
more32++;
}
}
return high,low,more100,less32,more32;
}
// Sort Array
void temp_sort(double temps[],int num_temps)
{
int k,j,m;
double hold;
m = k;
for (k=0;k<=num_temps;k++) {
if(temps[j] < temps[m])
m = j;
hold = temps[m];
temps[m] = temps[k];
temps[k] = hold;
}
return;
}
// Display temperatures
double temp_output(double avg, double high, double low, int above,
double temps[], int below, int equal, int more100,
int more32, int less32, int num_temps)
{
int i;
printf(" Fahr: Cels:\n");
for(i=0;i<=num_temps;i++) {
printf(" %.1lf ",temps[i]);
i++;
printf("%lf\n",temps[i]);
}
printf(" ---------------------\n");
printf("Average: %.1lf %lf\n\n",avg,f_to_c(avg));
printf("Low: %.1lf %lf\n\n",low,f_to_c(low));
printf("High: %.1lf %lf\n\n",high,f_to_c(high));
printf("Above Average: %i\n\n",above);
printf("Below Average: %i\n\n",below);
printf("Equal to Average: %i\n\n",equal);
printf("100 F and Above: %i\n\n",more100);
printf("> 32 F and < 100 F: %i\n\n",more32);
printf("32 F and Below: %i\n\n",less32);
}
Sorry for not just posting code snippets, but at this point I'm not really sure exactly what is right and what is wrong.