如何创建排除最低温度并计算平均温度的方法.我只想要一个提示,而不是完整的解决方案,因为我想自己解决我的编程问题.我只有大约10个班级…评论人们的评论我的教授没有讲课,我读过我的书多次回顾过它.
我让这个程序从用户那里拿一个号码.该数字将添加到数组中.该数组用于创建类Temp的实例以打印最低和最高临时值.
class Program { static void Main(string[] args) { Console.Write("Enter a Temperature in Degrees:"); string n = Console.ReadLine(); int number = Convert.ToInt32( n); Temp t = new Temp(100,52,98,30,11,54,number); Console.WriteLine("Lowest Temperature:{0}",t.lowest()); Console.WriteLine("Highest Temperature: {0}",t.highest()); Console.WriteLine("Average Temperature: {0}",t.Average()); } public class Temp { private int[] temp = new int[7]; // array public Temp(int d1,int d2,int d3,int d4,int d5,int d6,int d7) // constructor with 7 parameters { temp[0] = d1; // assigning constructor parameters to array temp[1] = d2; temp[2] = d3; temp[3] = d4; temp[4] = d5; temp[5] = d6; temp[6] = d7; } public int lowest() // returning the lowest value of the set of numbers { int smallest = 150; for (int c = 0; c < 7; c++) { if (temp[c] < smallest) { smallest = temp[c]; } } return smallest; } public int highest() { int highest = -1; for (int c = 0; c < 7; c++) { if (temp[c] > highest) { highest = temp[c]; } } return highest; } public double Average() { double average = 0; for (int c = 0; c < 7; c++) { } return average; } } }
解决方法
使用单个循环非常容易:
public double Average() { // Initialize smallest with the first value. // The loop will find the *real* smallest value. int smallest = temp[0]; // To calculate the average,we need to find the sum of all our temperatures,// except the smallest. int sum = temp[0]; // The loop does two things: // 1. Adds all of the values. // 2. Determines the smallest value. for (int c = 1; c < temp.Length; ++c) { if (temp[c] < smallest) { smallest = temp[c]; } sum += temp[c]; } // The computed sum includes all of the values. // Subtract the smallest. sum -= smallest; double avg = 0; // and divide by (Length - 1) // The check here makes sure that we don't divide by 0! if (temp.Length > 1) { avg = (double)sum/(temp.Length-1); } return avg; }