C# 在C中没有接收到正确的输出#

C# 在C中没有接收到正确的输出#,c#,loops,C#,Loops,所以我在做家庭作业,由于某种原因,我的变量没有给我正确的输出。用6、7、8、9、10作为评判分数,1.2作为难度,我应该得到9.6分作为最后的跳水分数。。但由于某种原因,我收到了8。。有什么想法吗 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Rickerson_Bret_iLab3 { c

所以我在做家庭作业,由于某种原因,我的变量没有给我正确的输出。用6、7、8、9、10作为评判分数,1.2作为难度,我应该得到9.6分作为最后的跳水分数。。但由于某种原因,我收到了8。。有什么想法吗

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Rickerson_Bret_iLab3
{
class Program
{
    static void Main(string[] args)
    {
        string wouldContinue;

        do
        {

            string diverName;
            string diverCity;
            double degreeofDiff = 0;
            double scoreJudge = 0;
            bool validDegree = false;
            double totalJudgeScore = 0;
            int i = 1;
            double highJudgeScore = 0;
            double lowJudgeScore = 0;

            Console.WriteLine("Enter the diver's name...");
            diverName = Convert.ToString(Console.ReadLine());

            Console.WriteLine("Enter the diver's city...");
            diverCity = Convert.ToString(Console.ReadLine());

            while (validDegree == false)
            {
                Console.WriteLine("Enter the degree of difficulty for this dive...");
                degreeofDiff = Convert.ToDouble(Console.ReadLine());

                if (degreeofDiff < 1.00 || degreeofDiff > 1.67)
                {
                    Console.WriteLine("Re-enter a valid degree of difficulty (Valid Range: 1.00 - 1.67");
                    validDegree = false;
                }
                else
                {
                    validDegree = true;
                }
            }

            while (i < 6)
            {
                Console.WriteLine("Enter the judge #" + i + " score...");
                scoreJudge = Convert.ToDouble(Console.ReadLine());

                if (scoreJudge > 10 || scoreJudge < 1)
                {
                    bool validScore = false;

                    while (validScore == false)
                    {
                        Console.WriteLine("Enter a valid Judge Score for judge #" + i + "...");
                        scoreJudge = Convert.ToDouble(Console.ReadLine());

                        if (scoreJudge > 10 || scoreJudge < 1)
                        {
                            validScore = false;
                        }
                        else
                        {
                            validScore = true;
                        }
                    }

                }

                if (scoreJudge > highJudgeScore)
                {
                    highJudgeScore = scoreJudge;
                    Console.WriteLine(highJudgeScore);
                }

                if (scoreJudge < lowJudgeScore)
                {
                    lowJudgeScore = scoreJudge;
                    Console.WriteLine(lowJudgeScore);
                }

                i++;
                totalJudgeScore = totalJudgeScore + scoreJudge;
                Console.WriteLine(totalJudgeScore);
                Console.WriteLine(scoreJudge);
            }

            double highLow = highJudgeScore + lowJudgeScore;
            totalJudgeScore = totalJudgeScore - highLow;
            totalJudgeScore = (totalJudgeScore / 3) * degreeofDiff;

            Console.WriteLine("Diver: " + diverName);
            Console.WriteLine("Diver City: " + diverCity);
            Console.WriteLine("Dive Degree of Difficulty: " + degreeofDiff);
            Console.WriteLine("Dive Score: " + totalJudgeScore);

            Console.WriteLine("Would you like to enter another diver? Enter y for yes or n for no...");
            wouldContinue = Convert.ToString(Console.ReadLine());
            wouldContinue.ToUpper();




        } while (wouldContinue == "Y");
    }
}
使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用系统文本;
使用System.Threading.Tasks;
名称空间Rickerson_Bret_iLab3
{
班级计划
{
静态void Main(字符串[]参数)
{
字符串将继续;
做
{
字符串名称;
弦发散性;
双度fdiff=0;
双评分法=0;
bool validgree=假;
双总判断核心=0;
int i=1;
双高判断核心=0;
双低判断核心=0;
控制台。WriteLine(“输入潜水员姓名…”);
diverName=Convert.ToString(Console.ReadLine());
控制台。WriteLine(“进入潜水员的城市…”);
diversity=Convert.ToString(Console.ReadLine());
while(validgree==false)
{
Console.WriteLine(“输入此潜水的难度…”);
degreeofDiff=Convert.ToDouble(Console.ReadLine());
如果(degreeofDiff<1.00 | | degreeofDiff>1.67)
{
Console.WriteLine(“重新输入有效的难度(有效范围:1.00-1.67”);
有效等级=假;
}
其他的
{
有效等级=真;
}
}
而(i<6)
{
Console.WriteLine(“输入裁判”#“+i+“分数…”);
scoreJudge=Convert.ToDouble(Console.ReadLine());
如果(ScoreJudget>10 | | ScoreJudget<1)
{
bool validScore=false;
while(validScore==false)
{
Console.WriteLine(“为Judge#“+i+”输入有效的裁判分数”);
scoreJudge=Convert.ToDouble(Console.ReadLine());
如果(ScoreJudget>10 | | ScoreJudget<1)
{
validScore=false;
}
其他的
{
validScore=true;
}
}
}
如果(ScoreJudget>highJudgeScore)
{
highJudgeScore=得分裁判;
控制台。写入线(highJudgeScore);
}
如果(分数判断<低判断分数)
{
lowJudgeScore=得分裁判;
控制台。写入线(低判断核心);
}
i++;
totalJudgeScore=totalJudgeScore+记分法官;
控制台写入线(totalJudgeScore);
控制台。WriteLine(记分法官);
}
双高低=高判断核心+低判断核心;
totalJudgeScore=totalJudgeScore-高低;
totalJudgeScore=(totalJudgeScore/3)*degreeofDiff;
控制台写入线(“潜水员:+潜水员姓名”);
控制台写入线(“潜水员城市:+潜水员城市”);
控制台写入线(“潜水难度:+degreeofDiff”);
控制台写入线(“俯冲分数:+totalJudgeScore”);
Console.WriteLine(“您想输入另一名潜水员吗?输入y表示是,输入n表示否…”);
wouldContinue=Convert.ToString(Console.ReadLine());
将继续。ToUpper();
}而(wouldContinue==“Y”);
}
}
}

我想补充一点。我试图通过让它在执行过程中或任何时候显示变量来验证它是否正确地接受了数据……整个过程似乎都是正确的,但最后是当我遇到变量“totalJudgeScore”的问题时


Edit2:我发现由于某种原因,代码没有正确地遵循最后2条if语句。它将“scoreJudge”存储到“highJudgeScore”和“lowJudgeScore”每次都会错误地覆盖数据。

在将lowJudgeScore设置为0后,永远不会将其设置为0。您应该将其默认值设置为10或更高,以便正确设置

试试这个:

double lowJudgeScore = 10.0;

发生的情况是,在循环过程中从未设置
lowJudgeScore
。添加此
else
块并初始化
lowJudgeScore

                if (scoreJudge < lowJudgeScore)
                {
                    lowJudgeScore = scoreJudge;
                    Console.WriteLine(lowJudgeScore);
                }
                //Add this else block to initialize the low score variable
                else if (lowJudgeScore == 0)
                {
                    lowJudgeScore = scoreJudge;
                }
if(scoreJudge
完全没有想法,我用与您提供的输入完全相同的方法复制了您提到的步骤,我得到了12分……因此我不知道您如何在all@Leo它也应该给你9.6分。不管怎样,最理想的情况是,代码底部的数学应该把低分和高分相加,然后从t中减去总分。然后将总分除以3,最后乘以难度highJudgeScore和lowJudgeScore始终为0。我这样做了(将lowJudgeScore设置为20),但我仍然收到相同的问题。它将lowJudgeScore和highJudgeScore设置为“judgeScore”输入的数字每一次。它的执行就好像数学没有正确执行,if语句被忽略一样。真的吗?我完全接受了你的代码,将0改为10.0,现在我的结果是9.6。我曾经是一名潜水员,所以我喜欢