代码未提供所需的输出

时间:2016-10-16 14:55:10

标签: c# arrays

我目前正试图找出我在这个分配代码逻辑中出错的地方。任何评论或建议将不胜感激!

无论我输入什么输入,我一直得到的输出一直在给我

  

平均温度0,

     

最高温度5,

     

最低温度0,

     

平均值不包括最低0,

     

寒冷天数10

头等舱

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace TemperatureAverager
{
class Temperatures
{
    public double[] weeksTemperatures;
    public double threshTemp;
    public double average;
    public double averageExcludingLowest;
    public double highest;
    public double lowest;
    public int numOfThreshs;




    public double[] WeeksTemperatures
    {
        get
        {
            return weeksTemperatures;
        }
    }
    public double ThreshTemp
    {
        get
        {
            return threshTemp;
        }
    }
    public double Average
    {
        set
        {
            average = value;
        }
        get
        {
            return average;
        }
    }
    public double AverageExcludingLowest
    {
        set
        {
            averageExcludingLowest = value;
        }
        get
        {
            return averageExcludingLowest;
        }
    }
    public double Highest
    {
        set
        {
            highest = value;
        }
        get
        {
            return highest;
        }
    }
    public double Lowest
    {
        set
        {
            lowest = value;
        }
        get
        {
            return lowest;
        }
    }
    public int NumberOfThreshs
    {
        set
        {
            numOfThreshs = value;
        }
        get
        {
            return numOfThreshs;
        }
    }
    public Temperatures()
    {
    }
    public Temperatures(double[] wTemperatures, double threshT)
    {
        weeksTemperatures = wTemperatures;
        threshTemp = threshT;
    }
    public double DetermineAverage()
    {
        double average = 0;
        for (int x = 0; x < 7; x++) 
        {
            average = average + weeksTemperatures[x];   
        }
        average = average / 7;    
        return average;
    }
    public double DetermineAverageExcludingLowest()
    {
        for (int x = 0; x < 7; x++) 
        {
            averageExcludingLowest = averageExcludingLowest + weeksTemperatures[x];
            if (weeksTemperatures[x] < lowest)   
            {
                lowest = weeksTemperatures[x];   
            }
        }
        averageExcludingLowest = ((averageExcludingLowest - lowest) / 7);   // calculate average excluding lowest temperature
        return averageExcludingLowest;
    }
    public double DetermineLowest()
    {
        for (int x = 0; x < 7; x++) //Traverse through the week's temperatures
        {
            if (weeksTemperatures[x] < lowest)   //find the lowest temperature of the week
            {
                lowest = weeksTemperatures[x];   //and set it to lowest
            }
        }
        return lowest;
    }
    public double DetermineHighest()
    {
        for (int x = 0; x < 7; x++) //Traverse through the week's temperatures
        {
            if (weeksTemperatures[x] > highest)  //find the highest temperature of the week
            {
                highest = weeksTemperatures[x];  //and set it to highest
            }
        }
        return highest;
    }
    public double DetermineNumberOfThreshs()
    {
        for (int x = 0; x < 7; x++) //Traverse through the week's temperatures
        {
            if (weeksTemperatures[x] < threshTemp)   //find the lowest temperature of the week
            {
                numOfThreshs++;
            }
        }
        return numOfThreshs;
    }
    public override string ToString()
    {
        return "=====================\nWeekly Statistics\n" + "---------------------\n" + "Average Temperature: " + average + "\nHighest Temperature: "
        + highest + "\nLowest Temperature: " + lowest + "\nAvg. Excl. Lowest: " + averageExcludingLowest + "\n# of Cold Days: " + numOfThreshs + "\n====================="; //Formats and the invoice to be printed
    }
}
}

第二课

namespace TemperatureAverager
{
class TemperatureApp
{
    static void Main(string[] args)
    {
        double[] week = new double[7];    
        string[] days = new string[] { "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" }; //array to track days of week
        for (int x = 0; x < 7; x++) 
        {
            Console.Write("What was the temperature on " + days[x] + "?: ");
            string userTemperatureInput = Console.ReadLine();
            week[x] = double.Parse(userTemperatureInput);
        }
        Console.Write("How cold is too cold?: ");
        string userThreshInput = Console.ReadLine();    
        double thresh = double.Parse(userThreshInput);
        Temperatures weekOne = new Temperatures(week, thresh);  
        Console.WriteLine(weekOne.ToString());
        Console.ReadLine();
    }
}
}

2 个答案:

答案 0 :(得分:1)

你有7个代码。让它像一个常数 tempratures类上的public static int DaysCount = 7,并在需要时引用(参见下面的示例)。

class Temperatures
{
  public static int DaysCount = 7;
}

然后您可以像这样使用它:

   static void Main(string[] args)
    {
        double[] week = new double[Temperatures.DaysCount];    
    }

我看不到你在哪里运行Determine ...()函数,从来没有计算过值。

在Determine ...()函数中,您应该在运行循环之前将值设置为适当的初始值,如下所示:

public double DetermineHighest()
{
  highest = -273 // degrees

  for (int x = 0; x < DaysCount; x++) //Traverse through the week's temperatures
  {
    if (weeksTemperatures[x] > highest)  //find the highest temperature of the week
    {
      highest = weeksTemperatures[x];  //and set it to highest
    }
  }
  return highest;
}

答案 1 :(得分:1)

一级

public class Temperatures
{
    private double sum;
    private int daysInWeek;

    public double[] WeeksTemperatures { get; set; }
    public double ThreshTemp { get; set; }
    public double Average { get; set; }
    public double AverageExcludingLowest { get; set; }
    public double Highest { get; set; }
    public double Lowest { get; set; }
    public int NumOfThreshs { get; set; }

    public Temperatures(double[] wTemperatures, double threshT)
    {
        this.WeeksTemperatures = wTemperatures;
        this.ThreshTemp = threshT;
        sum = 0.0;
        daysInWeek = 7;
    }

    public void GetWeekStatistics()
    {
        GetSum();
        DetermineLowest();
        DetermineHighest();
        DetermineAverage();
        DetermineAverageExcludingLowest();
        DetermineNumberOfThreshs();
    }

    private void GetSum()
    {
        for (int x = 0; x < daysInWeek; x++) //Traverse through the week's temperatures
        {
            this.sum = this.sum + this.WeeksTemperatures[x];
        }
    }

    public void DetermineLowest()
    {
        this.Lowest = this.WeeksTemperatures[0];
        for (int x = 0; x < daysInWeek; x++) //Traverse through the week's temperatures
        {
            if (this.WeeksTemperatures[x] < this.Lowest)   //find the lowest temperature of the week
            {
                this.Lowest = this.WeeksTemperatures[x];   //and set it to lowest
            }
        }
    }

    public void DetermineHighest()
    {
        this.Highest = this.WeeksTemperatures[0];
        for (int x = 0; x < daysInWeek; x++) //Traverse through the week's temperatures
        {
            if (this.WeeksTemperatures[x] > this.Highest)  //find the highest temperature of the week
            {
                this.Highest = this.WeeksTemperatures[x];  //and set it to highest
            }
        }
    }

    private void DetermineAverage()
    {
        this.Average = this.sum / daysInWeek;
    }

    public void DetermineAverageExcludingLowest()
    {
        this.AverageExcludingLowest = ((this.sum - this.Lowest) / daysInWeek);   // calculate average excluding lowest temperature
    }

    public void DetermineNumberOfThreshs()
    {
        for (int x = 0; x < daysInWeek; x++) //Traverse through the week's temperatures
        {
            if (this.WeeksTemperatures[x] < this.ThreshTemp)   //find the lowest temperature of the week
            {
                this.NumOfThreshs++;
            }
        }
    }
    public override string ToString()
    {
        return "=====================\nWeekly Statistics\n" + "---------------------\n" + "Average Temperature: " + this.Average + "\nHighest Temperature: "
        + this.Highest + "\nLowest Temperature: " + this.Lowest + "\nAvg. Excl. Lowest: " + this.AverageExcludingLowest + "\n# of Cold Days: " + this.NumOfThreshs + "\n====================="; //Formats and the invoice to be printed
    }
}

第二课的变化

Temperatures weekOne = new Temperatures(week, thresh);
weekOne.GetWeekStatistics();