Skip to content

Instantly share code, notes, and snippets.

@taznica
Last active May 30, 2016 02:07
Show Gist options
  • Save taznica/d21e0c4a4fa33a9203c1c705b65d7373 to your computer and use it in GitHub Desktop.
Save taznica/d21e0c4a4fa33a9203c1c705b65d7373 to your computer and use it in GitHub Desktop.
#include <stdio.h>
#include <stdlib.h>
int roundoff(float a)
{
int i;
if(a-(int)a<0.5)
{
a=(int)a;
}
else if(a-(int)a>=0.5)
{
a=(int)a+1;
}
return a;
}
int funMax(int array[], int len)
{
int i, max=0;
for(i=0;i<len;i++)
{
if(max<=array[i])
{
max=array[i];
}
}
return max;
}
int funMin(int array[], int len)
{
int i, min=20;
for(i=0;i<len;i++)
{
if(min>=array[i])
{
min=array[i];
}
}
return min;
}
void histogram(int array[], int max, int min)
{
int i, j;
for(i=min;i<max+1;i++)
{
printf("%2d ", i);
for(j=0;j<array[i];j++)
{
printf("*");
}
printf("\n");
}
}
int main()
{
int num, i;
int max, min;
scanf("%d", &num);
float *rawData=(float *)malloc(sizeof(float)*num);
int *intData=(int *)malloc(sizeof(int)*num);
int numberOfData[20];
for(i=0;i<20;i++)
{
numberOfData[i]=0;
}
if(rawData==NULL)
{
puts("ERROR");
return 1;
}
if(intData==NULL)
{
puts("ERROR");
return 1;
}
for(i=0;i<num;i++)
{
scanf("%f", &rawData[i]);
intData[i]=roundoff(rawData[i]);
numberOfData[intData[i]]+=1;
}
max=funMax(intData, num);
min=funMin(intData, num);
histogram(numberOfData, max, min);
free(rawData);
free(intData);
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment