Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

จำนวนนักเรียนสูงสุดที่ผ่านหลังให้คะแนนพิเศษทุกคนและไม่เกิน 100 คะแนนในโปรแกรม C++

ในปัญหานี้ เราได้รับอาร์เรย์ stu[] ขนาด n แสดงคะแนนของนักเรียนในชั้น สำหรับนักเรียนแต่ละคน คะแนนสูงสุดคือ 100 และนักเรียนต้องการ 50 คะแนนเพื่อผ่านการสอบ ภารกิจของเราคือสร้างโปรแกรมเพื่อหาจำนวนนักเรียนสูงสุดที่ผ่านหลังให้คะแนนพิเศษทุกคนและไม่เกิน 100 คะแนน

คำอธิบายปัญหา

เราต้องให้คะแนนพิเศษแก่นักเรียนเพื่อให้ผ่านแต่วคะแนนพิเศษจะให้กับนักเรียนทุกคน ภารกิจของเราคือเพิ่มจำนวนนักเรียนที่สามารถผ่านการสอบได้โดยการให้คะแนนพิเศษ แต่นักเรียนคนไหนก็ตามไม่ควรได้คะแนนมากกว่า 100 หลังจากให้คะแนนพิเศษ และคืนค่าจำนวนนักเรียนที่ผ่านสูงสุด

ตัวอย่าง

อินพุต

stu[] = {45, 32, 78, 10, 53, 67}

เอาต์พุต

5

คำอธิบาย

นักเรียนที่ผ่านทั้งหมด: 
45 + 22 = 67 
32 + 22 = 54 
78 + 22 = 100 
53 + 22 = 75 
67 + 22 = 89

แนวทางแก้ปัญหา

ในการแก้ปัญหา เราต้องให้คะแนนแก่นักเรียน แต่สิ่งหนึ่งที่ต้องพิจารณาคือคะแนนสูงสุดของนักเรียนคนไหนก็ตามไม่ควรเกิน 100 ดังนั้นคะแนนพิเศษสูงสุดที่สามารถให้ได้คือ

นักเรียนที่มีคะแนนสูงสุด(M) + คะแนนพิเศษ = 100 
คะแนนพิเศษ = 100 - M

จากนั้นเราจะบวกคะแนนพิเศษนี้เข้ากับคะแนนปัจจุบันของนักเรียน หากเกิน 50 นักเรียนจะผ่าน ผลลัพธ์จะเป็นจำนวนนักเรียนทั้งหมดที่เป็นเช่นนั้น

อัลกอริทึม

เริ่มต้น

passCount = 0;

ขั้นตอนที่ 1

หานักเรียนที่มีคะแนนสูงสุด maxMarks

ขั้นตอนที่ 2

คำนวณคะแนนพิเศษที่สามารถให้กับนักเรียนทุกคน bonus = 100 - maxMarks

ขั้นตอนที่ 3

วนลูป i → 0 ถึง n-1

ขั้นตอนที่ 3.1

ถ้า (stu[i] + bonus >= 50), passCount++

ขั้นตอนที่ 4

คืนค่า 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= 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