Sal B.
asked 03/27/22Adjust 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 adjustment 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.
Output each floating-point value with two digits after the decimal point, which can be achieved by executing
cout << fixed << setprecision(2);
once before all other cout statements.
Ex: If the input is:
the output is:
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 <iostream>
#include <iomanip>
#include <vector>
using namespace std;
int main() {
/* Type your code here. */
return 0;
}
1 Expert Answer
Donald W. answered 03/27/22
Here's a quick implementation that performs the requirements, assuming that the input comes in from command line arguments and we need to parse them out of the argv array.
#include <algorithm>
#include <vector>
#include <string>
#include <iostream>
#include <iomanip>
#include <limits.h>
using namespace std;
int main(int argc, char **argv) {
if (argc < 3) {
return -1;
}
int count = stoi(argv[1]);
if (argc < count+2) {
return -1;
}
vector<double> numbers(count);
for (int i=0; i<count; i++) {
numbers[i] = stod(argv[i+2]);
}
double mx = -1;
for (double number : numbers) {
mx = max(mx, number);
}
cout << fixed << setprecision(2);
for (double number : numbers) {
cout << number / mx << " ";
}
cout << endl;
return 0;
}
Still looking for help? Get the right answer, fast.
Get a free answer to a quick problem.
Most questions answered within 4 hours.
OR
Choose an expert and meet online. No packages or subscriptions, pay only for the time you need.
Donald W.
I think we're missing some code that should also be provided. Is there another function that is given the list of numbers that should be adjusted? Or are we supposed to parse this from the command line arguments in argv?03/27/22