Программа оценки С: не возвращается «С» для программы оценки - PullRequest
0 голосов
/ 25 сентября 2019

Я не уверен, что не так с моей программой в данный момент.Я могу получить правильные значения для A, B, D, F;но оно не возвращает значение C, когда оценка составляет от 70 до 80.

Я понимаю, что я обошел эту программу странным образом, это связано с тем, как профессор установил задание.Я смог получить C с помощью простых операторов if.Я считаю, что проблема связана с тем, как настроен мой else (userGrade B).

/* Jon Hays
   Assignment 3B Due 9/25/19
   "Grade Calculator"
   This program calculates the average grade (%)
   out of three test scores and converts it to a character
   (A, B, C, D, F)*/

#define _CRT_SECURE_NO_WARNINGS
#include <stdlib.h>
#include <stdio.h>
#include <math.h>

int main()
{
    double test1;
    double test2;
    double test3;
    char userGrade;

    printf("Please input three test scores:");
    scanf("%lf %lf %lf", &test1, &test2, &test3);

    double testAverage = (test1 + test2 + test3) / 3;
    double second3rdAverage = (test2 + test3) / 2;

    if (testAverage >= 90)
        userGrade = 'A';
    else if (testAverage >= 70 && testAverage < 90)
    {
        if (test3 > 90) 
            userGrade = 'A';
        else 
            userGrade = 'B';
    }
    else if (testAverage >= 50 && testAverage < 70)
    {
        if (second3rdAverage >= 70)
            userGrade = 'C';
        else
            userGrade = 'D';
    }
    if (testAverage <= 50)
        userGrade = 'F';

    printf("%c", userGrade);
}

1 Ответ

2 голосов
/ 25 сентября 2019

Ваш алгоритм правильный.Задание, которое вы указали в комментариях

  • Если средний балл составляет 90% или более, оценка равна A.
  • Если средний балл составляет 70% или более именее 90%, проверьте третий балл.
    • Если третий балл составляет более 90%, оценка А;в противном случае оценка равна B.
  • Если средний балл составляет 50% или более и менее 70%, проверьте среднее значение второго и третьего баллов.
    • Если среднее значение по двум из них превышает 70%, оценка составляет C;в противном случае оценка равна D.
  • Если средний балл составляет менее 50%, тогда оценка равна F.

означает, что Cприсуждается только в том случае, если ваш общий балл ниже 70%.Я предполагаю, что вы предполагали, что поставленная задача как-то связана с реальной оценкой, а это не так.

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