इस समस्या में, हमें n आकार का एक सरणी stu[] दिया जाता है जो कक्षा में छात्रों के अंकों को दर्शाता है। प्रत्येक छात्र के लिए, अधिकतम अंक 100 है और एक छात्र को परीक्षा पास करने के लिए 50 अंक चाहिए। हमारा काम हर किसी को बोनस देने और 100 से अधिक अंक नहीं देने के बाद उत्तीर्ण होने वाले अधिकतम छात्रों को खोजने के लिए एक कार्यक्रम बनाना है।
समस्या का विवरण - हमें पास होने के लिए छात्रों को बोनस अंक देने की जरूरत है लेकिन बोनस अंक सभी छात्रों को दिए जाएंगे। हमारा काम उन छात्रों की संख्या को अधिकतम करना है जो बोनस अंक देकर परीक्षा उत्तीर्ण कर सकते हैं लेकिन किसी भी छात्र को बोनस देने के बाद 100 से अधिक अंक प्राप्त नहीं करना चाहिए। और फिर उत्तीर्ण होने वाले छात्रों की अधिकतम संख्या लौटाएं।
समस्या को समझने के लिए एक उदाहरण लेते हैं,
इनपुट
stu[] = {45, 32, 78, 10, 53, 67}
आउटपुट
5
स्पष्टीकरण
All students passed are : 45 + 22 = 67 32 + 22 = 54 78 + 22 = 100 53 + 22 = 75 67 + 22 = 89
समाधान दृष्टिकोण
समस्या को हल करने के लिए, हमें छात्र को अंक देने की आवश्यकता है, लेकिन एक बात पर विचार करना चाहिए कि किसी भी छात्र के अधिकतम अंक 100 से अधिक नहीं होने चाहिए। इसलिए जो अधिकतम बोनस दिया जा सकता है वह है
Student with max marks(M) + bonus = 100 Bonus = 100 − M
फिर हम इस बोनस को छात्रों के वर्तमान अंकों में जोड़ देंगे। यदि यह 50 से अधिक है, तो छात्र पास हो जाते हैं। परिणाम ऐसे सभी छात्रों की गिनती होगी।
एल्गोरिदम
आरंभ करें
passCount = 0;
चरण 1 -
Find the student with maximum marks, maxMarks.
चरण 2 -
Calculate bonus that can be given to all students, bonus = 100 − maxMarks.
चरण 3 -
Loop for i −> 0 to n−1
चरण 3.1 -
if(stu[i] + bonus >= 50), passCount++.
चरण 4 -
return passCount.
उदाहरण
हमारे समाधान की कार्यप्रणाली को दर्शाने वाला कार्यक्रम,
#include<iostream> using namespace std; int calcPassCount(int stu[], int n) { int maxMarks = stu[0]; for(int i = 1; i < n; i++){ if(stu[i] > maxMarks) maxMarks = stu[i]; } int bonusMarks = 100 − maxMarks; int passCount = 0; for(int i=0; i<n; i++) { if(stu[i] + bonusMarks >= 50) passCount ++; } return passCount; } int main() { int stu[] = {45, 32, 78, 10, 53, 67}; int n = sizeof(stu)/sizeof(stu[0]); cout<<"The Maximum students to pass after giving bonus to everybody is "<<calcPassCount(stu, n); return 0; }
आउटपुट
The Maximum students to pass after giving bonus to everybody is 5