+ 2

C++ Ticket Office

I keep encountering the 'Timeout: the monitored program dumped core' message when trying to run this code. I think it has to do with memory allocation and using pointers etc. Please could someone explain how to fix this issue. Thank youuu #include <iostream> using namespace std; int main() { int ages[5]; float minNumber; float discountPrice; float discount; for (int i = 0; i < 5; ++i) { cin >> ages[i]; } if (int y; minNumber < ages[y]) { minNumber = ages[y]; } discount = minNumber / 100; discountPrice = 5 * 10 * (1 - discount); cout << discountPrice; return 0; }

29th Apr 2021, 9:46 AM
Max Hill
Max Hill - avatar
7 Respostas
+ 2
Maximus Hillius Try this: #include <iostream> using namespace std; int main() { int ages[5]; for (int i = 0; i < 5; ++i) { cin >> ages[i]; } double youngest = ages[0]; for (int a = 0; a <5; ++a) { if(youngest>ages[a]) { youngest = ages[a]; } } double prezzo = 50 - (50*youngest/100); cout << prezzo; return 0; }
30th Apr 2021, 9:25 PM
â€ïžđŸ˜PreranađŸ˜â€ïž
â€ïžđŸ˜PreranađŸ˜â€ïž - avatar
+ 1
1. minNumber is not initialized. This causes anything you do with minNumber except assignments and initialization will be undefined. (Note, minNumber shouldn't be initialized too less. 2. I suppose you try to get the min of the ages array with the following: if (int y; minNumber < ages[y]) { minNumber = ages[y]; } This doesn't work. Both minNumber and y is uninitialized and it should be minNumber > ages[y]. Note that you don't even put it in the loop. How do you compare every numbers with minNumber? You could do: for (int i = 0; i < 5; ++i) { cin >> ages[i]; if(minNumber > ages[i]) { minNumber = ages[i]; } }
29th Apr 2021, 10:58 AM
äœ çŸ„é“èŠć‰‡ïŒŒæˆ‘äčŸæ˜Ż
äœ çŸ„é“èŠć‰‡ïŒŒæˆ‘äčŸæ˜Ż - avatar
+ 1
Thank you both for your help!! I managed to get it to work for every example except the first for some reason ... #include <iostream> using namespace std; int main() { int ages[5]; float minNumber = ages[0]; float discount = 0; float discountPrice = 0; for (int i = 0; i < 5; ++i) { cin >> ages[i]; if (minNumber > ages[i]) { minNumber = ages[i]; } } discount = (1 - (minNumber / 100)); discountPrice = (50 * discount); cout << discountPrice; return 0; }
29th Apr 2021, 10:44 PM
Max Hill
Max Hill - avatar
0
minNumber = ages[0] results garbage number because ages[0] is uninitialized. ages[0] doesn't hold a number until cin.
29th Apr 2021, 11:27 PM
äœ çŸ„é“èŠć‰‡ïŒŒæˆ‘äčŸæ˜Ż
äœ çŸ„é“èŠć‰‡ïŒŒæˆ‘äčŸæ˜Ż - avatar
0
Maximus Hillius #include <iostream> using namespace std; int main() { int ages[5]; float minNumber; float discountPrice; float discount; cin >> ages[0]; minNumber = ages[0]; for (int i = 1; i < 5; ++i) { cin >> ages[i]; if (minNumber > ages[i]) minNumber = ages[i]; } discount = minNumber / 100; discountPrice = 5 * 10 * (1 - discount); cout << discountPrice; return 0; }
1st May 2021, 8:05 AM
Asmerom Estifanos
Asmerom Estifanos - avatar
0
See my answer: #include <iostream> using namespace std; int main() { int ages[5]; int min , temp; float disc, total; for (int i = 0; i < 5; ++i) { cin >> ages[i]; min = ages[0]; } for (int i = 1; i < 5; i++) { if (min < ages[i]){ temp = min; } else { temp = ages[i]; } min = temp; } disc = temp*(0.5); total = 50-disc; cout << total; return 0; }
9th Jun 2021, 6:59 AM
Akshat Sharma