C Program to Calculate the Quartiles
In this article, we will learn how to calculate the quartiles and implement it into C programming. Finding quartiles is a statistical study, where quartiles indicate the measures of central tendency. That belongs to measures of position.
Quartiles indicate one kind of average value of a given ungrouped data set. Quartiles can measure the average value of three positions of a given data set. They are 25% of distribution, 50% of the distribution, and 75% of the distribution.
Quartiles can be measured using the following three formulas:
In the above formulas,
- n = the number of observations, or the number of elements in the data set.
- Q1 = First quartiles or 25% of distributions
- Q2 = Second quartiles or 50% of distributions
- Q3 = Third quartiles or 75% of distributions
Algorithm – Calculate the Quartiles
- At the very beginning of the program, we will take an array
arr[100]
for storing the data set and declare necessary variables. - Ask the number of input
n
to be taken from the user. - Loop until
n
and take input from the user using thescanf()
function and store in the arrayarr[100]
- Sort the data set using any kind of sorting techniques (bubble sort used here).
- After getting the sorted data, serialize the raw data, and prepare to use it in the quartiles formula.
- Apply the quartiles formula for each Q1, Q2, and Q3.
- Finally, print it to the console display using
printf()
function.
Program – Calculate the Quartiles
#include <stdio.h>
int main() {
int i, n, j, tmp, arr[100];
double Q1, Q2, Q3;
int R1, R2, R3;
printf("Number of data in the data set: ");
scanf("%d", &n);
printf("Enter %d elements: ", n);
for(i=0; i<n; i++) {
scanf("%d", &arr[i]);
}
for(i=0; i<n; i++) {
for(j=0; j<n-i-1; j++) {
if(arr[j] > arr[j+1]) {
tmp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = tmp;
}
}
}
printf("\nSorted data: ");
for(i=0; i<n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
Q1 = n/4.0;
Q2 = (2*n)/4.0;
Q3 = (3*n)/4.0;
R1 = n/4;
R2 = (n*2)/4;
R3 = (n*3)/4;
if((Q1-R1) == 0) {
printf("First quartiles (Q1): %d\n", arr[R1-1]);
} else {
float q1;
q1 = arr[R1-1] + (Q1-R1)*((arr[R1]-arr[R1-1]));
printf("First quartiles (Q1): %.2f\n", q1);
}
if((Q2-R2) == 0) {
printf("Second quartiles (Q2): %d\n", arr[R2-1]);
} else {
float q2;
q2 = arr[R2-1] + (Q2-R2)*((arr[R2]-arr[R2-1]));
printf("Second quartiles (Q2): %.2f\n", q2);
}
if((Q3-R3) == 0) {
printf("Third quartiles (Q3): %d\n", arr[R3-1]);
} else {
float q3;
q3 = arr[R3-1] + (Q3-R3)*((arr[R3]-arr[R3-1]));
printf("Third quartiles (Q3): %.2f\n", q3);
}
return 0;
}
Sample Input | Sample Output |
---|---|
Enter 6 elements: 10 40 60 37 42 82 | Sorted data: 10 37 40 42 60 82 First quartiles (Q1): 23.50 Second quartiles (Q2): 40 Third quartiles (Q3): 51.00 |
NOTE: Data set must be sorted before calculating quartiles
Happy coding 🙂