...
Code Block | ||
---|---|---|
| ||
#include <stdio.h>
/* Returns the mean value of the array */
float mean(float array[], int size) {
float total = 0.0;
int i;
for (i = 0; i < size; i++) {
total += array[i];
printf("array[%d] = %f and total is %f\n", i, array[i], total);
}
if (size != 0)
return total / size;
else
return 0.0;
}
enum {array_size = 10};
float array_value = 10.1;
int main(void) {
float array[array_size];
float avg;
int i;
for (i = 0; i < array_size; i++) {
array[i] = array_value;
}
avg = mean( -array, array_size);
printf("mean is %f\n", avg);
if (avg == array[0]) {
printf("array[0] is the mean\n");
} else {
printf("array[0] is not the mean\n");
}
return 0;
}
|
...
Code Block | ||
---|---|---|
| ||
#include <stdio.h>
/* Returns the mean value of the array */
float mean(int array[], int size) {
int total = 0;
int i;
for (i = 0; i < size; i++) {
total += array[i];
printf("array[%d] = %f and total is %f\n", i, array[i] / 100.0, total / 100.0);
}
if (size != 0)
return ((float) total) / size;
else
return 0.0;
}
enum {array_size = 10};
int array_value = 1010;
int main(void) {
int array[array_size];
float avg;
int i;
for (i = 0; i < array_size; i++) {
array[i] = array_value;
}
avg = mean( -array, array_size);
printf("mean is %f\n", avg / 100.0);
if (avg == array[0]) {
printf("array[0] is the mean\n");
} else {
printf("array[0] is not the mean\n");
}
return 0;
}
|
...
Code Block |
---|
array[0] = 10.100000 and total is 10.100000 array[1] = 10.100000 and total is 20.200000 array[2] = 10.100000 and total is 30.300000 array[3] = 10.100000 and total is 40.400000 array[4] = 10.100000 and total is 50.500000 array[5] = 10.100000 and total is 60.600000 array[6] = 10.100000 and total is 70.700000 array[7] = 10.100000 and total is 80.800000 array[8] = 10.100000 and total is 90.900000 array[9] = 10.100000 and total is 101.000000 mean is 10.100000 array[0] is the mean |
Risk
...
Assessment
Using a representation other than floating point may allow for more precision and accuracy for critical arithmeticaccurate results.
Recommendation | Severity | Likelihood | Remediation Cost | Priority | Level |
---|---|---|---|---|---|
FLP02-C | low | probable | high | P2 | L3 |
...