首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C分级程序:不返回“C”作为分级程序

C分级程序:不返回“C”作为分级程序
EN

Stack Overflow用户
提问于 2019-09-24 21:16:31
回答 1查看 69关注 0票数 0

我不知道我的节目目前有什么问题。我可以得到A,B,D,F的正确值,但是当分数在70到80之间时,它不会返回C值。

我知道我用一种奇怪的方式转到这个项目上,那是因为教授是如何安排作业的。我可以用简单的if语句得到C。我相信这个问题与我的其他(userGrade B)的设置有关。

代码语言:javascript
复制
/* 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);
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-24 21:44:56

你的算法是正确的。注释中指示的任务。

  • 如果平均分数为90%或以上,则为A级
  • ,如果平均分数为70%或以上,小于90%,请检查第三名。如果三分超过90%,则为A级;否则为B.

如果

  • 的平均分数是50%或以上,小于70%,那么检查第二和第三分的平均值。如果两者的平均值大于70%,则为C;否则为D.

  • 如果平均分数小于50%,则该分数为F.

这意味着,只有当你的总分低于70%时才能获得C级的奖励。我想,你的假设是,手头的任务与真正的评分有关--事实并非如此。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58088254

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档