Task- Median elements (C Language) Example #4 expected output is 5, but from the program below its coming out to 4. Please help make it come out to 5 as expected Given an array of integer elements, the median is the value that separates the higher half from the lower half of the values. In other words, the median is the central element of a sorted array. Since multiple elements of an input array can be equal to the median, in this task you are asked to compute the number of elements equal to the median in an input array of size N, with N being an odd number. Requirements Name your program project4_median.c. Follow the format of the examples below. The program will read the value of N, then read in the values that compose the array. These values are not necessarily sorted. The program should include the following function. Do not modify the function prototype. int compute_median(int *a, int n); a represents the input array, n is the length of the array. The function returns the median of the values in a. This function should use pointer arithmetic– not subscripting – to visit array elements. In other words, eliminate the loop index variables and all use of the [] operator in the function. In the main function, call the compute_median function, then compute and display the result. Pointer arithmetic is NOT required in the main function. Examples (your program must follow this format precisely) Example #1 Enter array size: 5 Enter array elements: 31 17 32 31 88 Output: 2 Example #2 Enter array size: 5 Enter array elements: 1 1 1 1 1 Output: 5 Example #3 Enter array size: 7 Enter array elements: 44 29 22 23 14 15 20 Output: 1 Example #4 Enter array size: 7 Enter array elements: 0 0 0 7 0 0 7 Output: 5 Program- #include int compute_median(int *a, int n); int main() { int n, i; //Getting the inputs from user printf("Enter array size: "); scanf("%d", &n); int a[n]; printf("Enter array elements: "); for (i = 0; i < n; i++) { scanf("%d", &a[i]); } //printing the correct output int median_count = compute_median(a, n); printf("Output: %d\n", median_count); return 0; } //median for the given inputs int compute_median(int *a, int n) { int temp, median; for (int i = 1 ; i <= n-1 ; i++) { for (int j = 1 ; j <= n-i ; j++) { if (a[j] <= a[j+1]) { temp = a[j]; a[j] = a[j+1]; a[j+1] = temp; } } } median = a[n/2 + 1]; int count = 0; for (int i = 0; i < n; i++) { if (*(a + i) == median) { count++; } } return count; }
Task- Median elements (C Language)
Example #4 expected output is 5, but from the
Given an array of integer elements, the median is the value that separates the higher half from the lower half of the values. In other words, the median is the central element of a sorted array.
Since multiple elements of an input array can be equal to the median, in this task you are asked to compute the number of elements equal to the median in an input array of size N, with N being an odd number.
Requirements
- Name your program project4_median.c.
- Follow the format of the examples below.
- The program will read the value of N, then read in the values that compose the array. These values are not necessarily sorted.
- The program should include the following function. Do not modify the function prototype.
int compute_median(int *a, int n);
-
- a represents the input array, n is the length of the array. The function returns the median of the values in a.
- This function should use pointer arithmetic– not subscripting – to visit array elements. In other words, eliminate the loop index variables and all use of the [] operator in the function.
- In the main function, call the compute_median function, then compute and display the result.
- Pointer arithmetic is NOT required in the main function.
Examples (your program must follow this format precisely)
Example #1
Enter array size: 5
Enter array elements: 31 17 32 31 88
Output: 2
Example #2
Enter array size: 5
Enter array elements: 1 1 1 1 1
Output: 5
Example #3
Enter array size: 7
Enter array elements: 44 29 22 23 14 15 20
Output: 1
Example #4
Enter array size: 7
Enter array elements: 0 0 0 7 0 0 7
Output: 5
Program-
#include <stdio.h>
int compute_median(int *a, int n);
int main() {
int n, i;
//Getting the inputs from user
printf("Enter array size: ");
scanf("%d", &n);
int a[n];
printf("Enter array elements: ");
for (i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
//printing the correct output
int median_count = compute_median(a, n);
printf("Output: %d\n", median_count);
return 0;
}
//median for the given inputs
int compute_median(int *a, int n) {
int temp, median;
for (int i = 1 ; i <= n-1 ; i++)
{
for (int j = 1 ; j <= n-i ; j++)
{
if (a[j] <= a[j+1])
{
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
median = a[n/2 + 1];
int count = 0;
for (int i = 0; i < n; i++)
{
if (*(a + i) == median) {
count++;
}
}
return count;
}
Step by step
Solved in 4 steps