
Patrick B. answered 02/04/21
Math and computer tutor/teacher
#include <stdio.h>
#include <stdlib.h>
int ComparePrice( const void * rec1, const void * rec2)
{
int iReturn=0;
float * floatPtr1 = (float*)rec1;
float * floatPtr2 = (float*)rec2;
float price1 = *floatPtr1;
float price2 = *floatPtr2;
if (price1!=price2)
{
iReturn = (price1>price2) ? 1 : -1;
}
return(iReturn);
}
int main()
{
//ALGORTIHM #1 : consecutive differences
double sum=0;
int N=12;
float prices[]={7.00,7.02,7.03,7.04,6.99,7.05,7.24,7.25,7.17,7.33,7.34,7.50};
for (int iLoop=N-1; iLoop>0; iLoop--)
{
float curDiff = prices[iLoop]-prices[iLoop-1];
sum = sum + curDiff;
printf(" iLoop= %d current difference = %6.2f running total = %6.2f \n",iLoop,curDiff,sum);
}
printf("%lf \n",sum);
//ALGORITHM #2: linear searches for min and max; then calculates the range
float minPrice=9999.99;
float maxPrice=-9999.99;
for (int iLoop=0; iLoop<N; iLoop++)
{
if (prices[iLoop]>maxPrice)
{
maxPrice=prices[iLoop];
}
if (prices[iLoop]<minPrice)
{
minPrice=prices[iLoop];
}
}
printf(" max is %6.2f and min is %6.2f \n",maxPrice,minPrice);
printf("%lf \n",(maxPrice-minPrice));
//ALGORITHM #3: Sorting
qsort(prices,N,sizeof(float),ComparePrice);
maxPrice = prices[N-1];
minPrice = prices[0];
printf(" max is %6.2f and min is %6.2f \n",maxPrice,minPrice);
printf("%lf \n",(maxPrice-minPrice));
}