Как использовать тестовое условие для нескольких переменных в C ++ - PullRequest
0 голосов
/ 03 мая 2018
#include <iostream>
int main()
{
    using namespace std;
    int P, C, M, marks;
    cout << "Grading System\n\n";
    cout << "Enter Marks in Phy\n";
    cin >> P;
    cout << "Enter Marks in Chem\n";
    cin >> C;
    cout << "Enter Marks in Maths\n";
    cin >> M;
    cout << "Grades\n\nPhysics Chemistry Maths\n";
    if (marks < 50)
        cout << "Fail";
    else if (marks <= 60)
        cout << "C";
    else if (marks <= 70)
        cout << "B";
    else if (marks <= 80)
        cout << "B+";
    else if (marks <= 90)
        cout << "A";
    else if (marks <= 95)
        cout << "A+";
    else
        cout << "Error";
    return 0;
}

Есть ли способ запустить выше, если оператор для нескольких значений меток, таких как оценки = P затем проверьте на наличие меток = C, меток = M и выведите соответственно:

Ответы [ 2 ]

0 голосов
/ 03 мая 2018

Вы можете сделать вашу программу более модульной, внедрив логику тестовых меток в отдельную функцию, назовите ее чем-нибудь вроде checkGrade и передайте в качестве аргумента значения, которые вы приняли в качестве входных данных. Например:

#include <iostream>
using namespace std; //I moved this command outside the main function so it applies globally
void checkGrade(int);
int main()
{
    int P, C, M;
    cout << "Grading System\n\n";
    cout << "Enter Marks in Phy\n";
    cin >> P;
    cout << "Enter Marks in Chem\n";
    cin >> C;
    cout << "Enter Marks in Maths\n";
    cin >> M;
    cout << "Grades\n\nPhysics Chemistry Maths\n";
    checkGrade(P);
    checkGrade(C);
    checkGrade(M);

    return 0;
}

void checkGrade(int marks){
    if (marks < 50)
    cout << "Fail";
    else if (marks <= 60)
    cout << "C";
    else if (marks <= 70)
    cout << "B";
    else if (marks <= 80)
    cout << "B+";
    else if (marks <= 90)
    cout << "A";
    else if (marks <= 95)
    cout << "A+";
    else{cout << "Error";}
}

Или вы можете использовать массив, подобный предложенному MadaZZ, чтобы исключить необходимость вызывать checkGrade () отдельно для каждого пользовательского ввода.

0 голосов
/ 03 мая 2018

Создайте массив отметок и функцию для проверки соответствующих оценок.

#include <iostream>

using namespace std;

void checkGrade(int marks) //function to check grade
{
    if (marks < 50)
        cout << "Fail";
    else if (marks <= 60)
        cout << "C";
    else if (marks <= 70)
        cout << "B";
    else if (marks <= 80){
        cout << "B+";
    }
    else if (marks <= 90){
        cout << "A";
    }
    else if (marks <= 95){
        cout << "A+";
    }
    else{
        cout << "Error";
    }
}

int main()
{
    cout << "Enter no. of students\n\n";

    int students;
    cin >> students;// Take input of no. of students

    int P[students], C[students], M[students]; //Declare array of marks, with each index depicting each student. Size of the array would be the number of students you entered

    for( int i = 0; i < students; i++ )
    {
        cout << "Grading System\n\n";
        cout << "Enter Marks in Phy\n";
        cin >> P[i];
        cout << "Enter Marks in Chem\n";
        cin >> C[i];
        cout << "Enter Marks in Maths\n";
        cin >> M[i];
        cout << "Grades\n\nPhysics Chemistry Maths\n";

        int count = 3;
        while(count) //To check grades in different subjects, the loop runs 'count' number of times ie. for each subject.
        {
            if(count == 3){
                cout<<"\n Grade in Physics ";
                checkGrade(P[i]); //Function called to check grade
            }
            else if(count == 2){
                cout<<"\n Grade in Chemistry ";
                checkGrade(C[i]); //Function called to check grade
            }
            else if(count == 1){
                cout<<"\n Grade in Maths ";
                checkGrade(M[i]); //Function called to check grade
            }
            count--;
        }

    }
    return 0;
}

Приведенная выше программа хранит данные для всех учащихся в соответствующем массиве оценок. Функция checkGrade принимает отметки в качестве входных данных и отображает оценку один за другим. Я хотел бы предложить вам Google, чтобы изучить концепции и решить некоторые проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...