+ 1

HELP ME!!! It's the ques. from c++ exercise, what's wrong with it??.....

#include <iostream> using namespace std; int main(){ int ages[5]; int i, x, cost; for (i = 0; i < 5; ++i){ cin >> ages[i]; } int min = ages[0]; for (x = 0; x < 5; x++){ if (ages[x] < min){ min = ages[x]; } } cost = 50-(50*(min/100)); cout << cost; return 0; }

30th Nov 2020, 2:31 PM
Rohit Anand
6 Antworten
+ 2
Remember, I was talking about the division. If you change 50 to float, the division ( min / 100 ) will still be integer division. It would make the most sense to change 100 to float, i.e. ( min / 100.0 ), since not only will this become floating point arithmetic, but also all later operations on the result. However, keep in mind your "cost" variable is an integer right now, meaning the decimal part would be truncated at the end, which would lead to an incorrect result. You can either print the result directly, without storing it in a variable inbetween, or you need to change the data type of "cost" as well.
1st Dec 2020, 9:04 AM
Shadow
Shadow - avatar
+ 4
If you divide an integer by another integer, the result will be an integer itself, i.e. the decimal part is cut off. Example: 10 / 4 = 2 4 / 10 = 0 If you want the result as a floating point type, then at least one of the operands needs to be a floating point value. Example: 10 / 4.0 = 2.5 4.0 / 10 = 0.4 Since the task expects you to output a floating point number, you need to change the calculation of the total cost a little to accomodate for this behaviour.
30th Nov 2020, 2:58 PM
Shadow
Shadow - avatar
+ 1
Can u plzz send full ans.... I'm still getting only 50 as answer.
30th Nov 2020, 4:10 PM
Rohit Anand
+ 1
What did you try to change?
30th Nov 2020, 4:45 PM
Shadow
Shadow - avatar
+ 1
50 -> int to float
1st Dec 2020, 2:16 AM
Rohit Anand
+ 1
Oh... thanks...it really worked...
1st Dec 2020, 11:08 AM
Rohit Anand