Някой може ли да ме насочи къде бъркам в кода.
Учениците могат да кандидатстват за социална стипендия или за стипендия за отличен успех. Изискване за социална стипендия - доход на член от семейството по-малък от минималната работна заплата и успех над 4.5. Размер на социалната стипендия - 35% от минималната работна заплата. Изискване за стипендия за отличен успех - успех над 5.5, включително. Размер на стипендията за отличен успех - успехът на ученика, умножен по коефициент 25.
Напишете програма, която при въведени доход, успех и минимална работна заплата, дава информация дали ученик има право да получава стипендия, и стойността на стипендията, която е по-висока за него.
Вход
Потребителят въвежда 3 числа, по едно на ред:
- Доход в лева - реално число в интервала [0.00..6000.00]
- Среден успех - реално число в интервала [2.00...6.00]
- Минимална работна заплата - реално число в интервала [0.00..1000.00]
Изход
- Ако ученикът няма право да получава стипендия, се извежда:
- You cannot get a scholarship!"
- Ако ученикът има право да получава само социална стипендия:
"You get a Social scholarship {стойност на стипендия} BGN" - Ако ученикът има право да получава само стипендия за отличен успех:
- You get a scholarship for excellent results {стойност на стипендията} BGN"
- Ако ученикът има право да получава и двата типа стипендии, ще получи по-голямата по сума, а ако са равни ще получи тази за отличен успех.
Резултатът се закръгля до по-малкото цяло число.
проблем със задачата scholarship докарвам я до 50/100 .
#include <iostream>
#include <tgmath.h>
using namespace std;
int main () {
double budget;
cin >> budget;
double grades;
cin >> grades;
double minimalbudget;
cin >> minimalbudget;
double socialscholarship = 0.35 * minimalbudget;
double schoolmoney = grades * 25;
if (grades < 5.50 && budget > minimalbudget ) {
cout << "You cannot get a scholarship!" << endl;
}else if (budget < minimalbudget && grades > 4.50) {
cout << "You get a Social scholarship " << socialscholarship << " BGN" << endl;
}else if (grades > 5.50) {
cout << "You get a scholarship for excellent results" << schoolmoney << " BGN" << endl;
}else if (socialscholarship > schoolmoney) {
cout << "You get a Social scholarship " << socialscholarship << " BGN" << endl;
}else if (schoolmoney > socialscholarship){
cout << "You get a scholarship for excellent results" << schoolmoney << " BGN" << endl;
}
}
Здравей с твоето решение изкарах 62/100 и успях да го добутам до 68/100 , но в judge не ми дава къде бъркам а двата inputa в docks file-a ми ги извежда правилно
ето го и кода
#include <iostream>
#include <tgmath.h>
using namespace std;
int main () {
double budget;
double grades;
double minimalbudget;
cin >> budget >> grades >> minimalbudget;
double socialscholarship = 0.35 * minimalbudget;
double schoolmoney = grades * 25;
cout .setf(ios::fixed);
cout.precision(0);
if (grades <= 4.50) {
cout << "You cannot get a scholarship!" << endl;
}
if ((grades > 4.50) && (grades < 5.50)) {
if (budget < minimalbudget) {
cout << "You get a Social scholarship "<< floor(socialscholarship) << " BGN" << endl;
}else {
cout << "You cannot get a scholarship!" << endl;
}
}
if (grades > 5.50) {
if (budget < minimalbudget) {
if (schoolmoney > socialscholarship){
cout << "You get a Social scholarship " << floor(schoolmoney) << " BGN" << endl;
}else if (schoolmoney < socialscholarship) {
cout << "You get a Social scholarship " << floor(socialscholarship) << " BGN" << endl;
}
}
}
}
Ами може би при закръгляването.
cout .setf(ios::fixed);
cout.precision(0);
Тук не ми е много ясно какво правиш.Моят код също има малки грешки,но след като го коригирах и пуснах няколко теста локално работеше правилно.Дай линк към judja да пробвам дали ще мине.Ето кода след корекциите:
https://pastebin.com/iFWrK8Ac
Извинявай за забавянето ето за judge https://judge.softuni.bg/Contests/Compete/Index/1161#0