У меня есть эта программа, которая должна дать мне наименьшую первоначальную цену товара, основываясь на входных данных пользователя. Существуют некоторые условия, например, если количество маски больше 9, цена будет снижена на 10%, 15%, если ее больше 30, и 20%, если больше 50. Результат должен дать ответ. Здесь мой код:
#include <iostream>
#include <iomanip>
using namespace std;
int mprice; //price input
int mquantity; //quantity input
int n; //first input
int fee = 2000; //const fee
float finalprice;
float maskCalc(int price, int quantity) {
float holder = (float)(price - fee) / (float)(quantity);
if (quantity > 0) {
finalprice = holder;
}
//if between 10 and 30
else if (quantity > 9) {
finalprice = holder / 0.9;
}
//between 30 and 49
else if (quantity > 30) {
finalprice = holder / 0.85;
}
//more than 50
else if (quantity > 49) {
finalprice = holder / 0.8;
}
//less than ten
else {
finalprice = holder;
}
return finalprice;
}
int main()
{
cin >> n;
float arr[n];
// Input oruulah loop
for (int i = 0; i < n; i++) {
cin >> mprice >> mquantity;
x = maskCalc(mprice, mquantity);
arr[i] = x;
}
for (int i = 1; i < n; i++) {
if (arr[0] > arr[i]) {
arr[0] = arr[i];
}
}
printf("%.2f", arr[0]);
return 0;
}
Я дал 3 3000 3 7000 10 3000 1, ответ был 555,56, что правильно, но когда я что-то вроде 3 2500 1 7000 10 3000 1, он дает мне 0,00 в то время как я ожидал, что это даст мне 500,00. Любая помощь будет оценена.