5.19 LAB: Adjust list by normalizing When analyzing data sets, such as data for human heights or for human weights, a common step is to adjust the data. This can be done by normalizing to values between 0 and 1, or throwing away outliers. For this program, adjust the values by dividing all values by the largest value. The input begins with an integer indicating the number of floating-point values that follow. Assume that the list will always contain less than 20 floating-point values. For coding simplicity, follow every output value by a space, including the last one. And, output each floating-point value with two digits after the decimal point, which can be achieved as follows: printf("%0.2lf ", yourValue); Ex: If the input is: 5 30.0 50.0 10.0 100.0 65.0 the output is: 0.30 0.50 0.10 1.00 0.65 The 5 indicates that there are five floating-point values in the list, namely 30.0, 50.0, 10.0, 100.0, and 65.0. 100.0 is the largest value in the list, so each value is divided by 100.0. For coding simplicity, follow every output value by a space, including the last one. #include int main () { int n; scanf("%d", &n); float a[n]; for(int i = 0; i < n; i++) { scanf("%f", &a[i]); // read the float values } float max = -1; for(int i = 0; i < n; i++) { if(a[i] > max) // finding max value { max = a[i]; } } for(int i = 0; i < n; i++) { a[i] = a[i] / max; // printnig the result printf("%0.2lf ", a[i]); } return 0; } 1:Compare outputkeyboard_arrow_up 0 / 3 Output is nearly correct, but whitespace differs. See highlights below. Special character legend Input 5 30.0 50.0 10.0 100.0 65.0 Your output 0.30 0.50 0.10 1.00 0.65 Expected output 0.30 0.50 0.10 1.00 0.65 (newline symbol) 2:Compare outputkeyboard_arrow_up 0 / 4 Output is nearly correct, but whitespace differs. See highlights below. Special character legend Input 7 5.0 10.0 15.0 20.0 25.0 30.0 35.0 Your output 0.14 0.29 0.43 0.57 0.71 0.86 1.00 (newline symbol) Expected output 0.14 0.29 0.43 0.57 0.71 0.86 1.00 3:Compare outputkeyboard_arrow_up 0 / 3 Output is nearly correct, but whitespace differs. See highlights below. Special character legend Input 4 99.9 52.5 12.6 200.0 Your output 0.50 0.26 0.06 1.00 Expected output 0.50 0.26 0.06 1.00 (newline symbol)
5.19 LAB: Adjust list by normalizing
When analyzing data sets, such as data for human heights or for human weights, a common step is to adjust the data. This can be done by normalizing to values between 0 and 1, or throwing away outliers.
For this program, adjust the values by dividing all values by the largest value. The input begins with an integer indicating the number of floating-point values that follow. Assume that the list will always contain less than 20 floating-point values.
For coding simplicity, follow every output value by a space, including the last one. And, output each floating-point value with two digits after the decimal point, which can be achieved as follows:
printf("%0.2lf ", yourValue);
Ex: If the input is:
5 30.0 50.0 10.0 100.0 65.0the output is:
0.30 0.50 0.10 1.00 0.65The 5 indicates that there are five floating-point values in the list, namely 30.0, 50.0, 10.0, 100.0, and 65.0. 100.0 is the largest value in the list, so each value is divided by 100.0.
For coding simplicity, follow every output value by a space, including the last one.
#include <stdio.h>
int main () {
int n;
scanf("%d", &n);
float a[n];
for(int i = 0; i < n; i++)
{
scanf("%f", &a[i]); // read the float values
}
float max = -1;
for(int i = 0; i < n; i++)
{
if(a[i] > max) // finding max value
{
max = a[i];
}
}
for(int i = 0; i < n; i++)
{
a[i] = a[i] / max; // printnig the result
printf("%0.2lf ", a[i]);
}
return 0;
}
Trending now
This is a popular solution!
Step by step
Solved in 5 steps with 2 images
I actually wanted it coded in C