Error:error: invalid operands to binary % (have ‘float’ and ‘int’)
14 | if(arr[i] % 2 == 0) {
| ~~~~~~ ^
| |
| float
Code:
#include <stdio.h>
#include <stdlib.h>
int main() {
int size, i, j;
float max, min, midpoint, sum = 0, avg, median, evenCount = 0, oddCount = 0, divisibleCount = 0;
printf("Enter the size of the array: ");
scanf("%d", &size);
float arr[size];
for(i = 0; i < size; i++) {
printf("Enter element %d: ", i+1);
scanf("%f", &arr[i]);
sum += arr[i];
if(arr[i] % 2 == 0) {
evenCount++;
} else {
oddCount++;
}
if(i == 0) {
max = arr[i];
min = arr[i];
} else {
if(arr[i] > max) {
max = arr[i];
}
if(arr[i] < min) {
min = arr[i];
}
}
}
midpoint = (max + min) / 2;
int lessThanMidpoint = 0, greaterThanMidpoint = 0;
for(i = 0; i < size; i++) {
if(arr[i] == midpoint) {
printf("Midpoint found at index %d using linear search.\n", i);
break;
}
}
for(i = 0; i < size; i++) {
if(arr[i] < midpoint) {
lessThanMidpoint++;
} else if(arr[i] > midpoint) {
greaterThanMidpoint++;
}
if((int)arr[i] % (int)min == 0) {
divisibleCount++;
}
}
avg = sum / size;
for(i = 0; i < size; i++) {
for(j = i+1; j < size; j++) {
if(arr[i] > arr[j]) {
float temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
if(size % 2 == 0) {
median = (arr[size/2] + arr[(size/2)-1]) / 2;
} else {
median = arr[size/2];
}
printf("Array size: %d\n", size);
printf("Maximum element: %0.2f\n", max);
printf("Minimum element: %0.2f\n", min);
printf("Midpoint: %0.2f\n", midpoint);
printf("Number of elements less than midpoint: %d\n", lessThanMidpoint);
printf("Number of elements greater than midpoint: %d\n", greaterThanMidpoint);
printf("Sum of elements: %0.2f\n", sum);
printf("Average of elements: %0.2f\n", avg);
printf("Median of elements: %0.2f\n", median);
printf("Number of even elements: %0.2f\n", evenCount);
printf("Number of odd elements: %0.2f\n", oddCount);
printf("Number of elements divisible by minimum value: %0.2f\n", divisibleCount);
return 0;
}
Tried: changing the "%" in line 14 to %f, %lf, %0.2f and %.2lf
Results main.c:14:20: error: ‘f’ undeclared (first use in this function) 14 | if(arr[i] %f 2 == 0) { | ^ main.c:14:20: note: each undeclared identifier is reported only once for each function it appears in main.c:14:21: error: expected ‘)’ before numeric constant 14 | if(arr[i] %f 2 == 0) { | ~ ^~ | )
main.c: In function ‘main’:
main.c:14:20: error: invalid suffix "lf" on floating constant
14 | if(arr[i] %.2lf 2 == 0) {
| ^~~~
main.c:14:24: error: expected ‘)’ before numeric constant
14 | if(arr[i] %.2lf 2 == 0) {
| ~ ^~
| )