c#将数组计算添加到新的十进制数

c#将数组计算添加到新的十进制数,c#,arrays,sum,average,C#,Arrays,Sum,Average,所以问题是我无法得到total+=parkFee来将所有的parkFee加在一起,它似乎只取max_fee的20,然后乘以数组长度(30),而不是取parkFee的新和 这很可能是我错过的非常简单的东西,因为我对它非常陌生,但我似乎无法理解它。 我觉得这个问题可能与if语句有关。如果有人能给我指出正确的方向,我将不胜感激。多谢各位 /*pseudocode Program : CarParkCalc3 * HOURLY_RATE=2.50 * MAX_FREE=20.00

所以问题是我无法得到
total+=parkFee
来将所有的parkFee加在一起,它似乎只取
max_fee
的20,然后乘以数组长度(30),而不是取parkFee的新和

这很可能是我错过的非常简单的东西,因为我对它非常陌生,但我似乎无法理解它。
我觉得这个问题可能与
if
语句有关。如果有人能给我指出正确的方向,我将不胜感激。多谢各位

/*pseudocode
Program : CarParkCalc3
     * HOURLY_RATE=2.50
     * MAX_FREE=20.00
     * int[]hoursArray 
     * parkFee = HOURLY_RATE * hoursArray
     * IF parkTime > MAX_FEE THEN
     *      OUTPUT MAX_FEE
     * ELSE
     *      OUTPUT parkFee
     * ENDIF
*/


const decimal HOURLY_RATE = 2.50m;
const decimal MAX_FEE = 20m;
decimal parkFee = 0;
int[] hoursArray = { 8, 24, 9, 7, 6, 12, 10, 11, 23, 1, 2, 9, 8, 8, 9, 7, 9, 15, 6, 1, 7, 6, 12, 10, 11, 23, 1, 2, 9, 8 };


Console.WriteLine("Hours  Park fee");
for (int index = 0; index < hoursArray.Length; index++)

{
    {
        parkFee = HOURLY_RATE * hoursArray[index];

        if (parkFee > MAX_FEE)
        {
            Console.WriteLine("{0,6}   {1,9} ", hoursArray[index], MAX_FEE.ToString("N"));
        }
        else
        {
            Console.WriteLine("{0,6}   {1,9} ", hoursArray[index], parkFee.ToString("N"));
        }

    }

}

decimal total = 0;
double average = 0;
for (int index = 0; index < hoursArray.Length; index++)

{
    total += parkFee;
}

average = (double)total / hoursArray.Length;
Console.WriteLine("Total = " + total);
Console.WriteLine("Average = " + average.ToString("N2"));
Console.ReadKey();
/*伪代码
项目:停车场CALC3
*每小时费率=2.50
*最大自由度=20.00
*整数[]小时
*停车费=每小时费率*小时安排
*如果停车时间>最高停车费,则
*输出最大费用
*否则
*输出停车费
*恩迪夫
*/
常量十进制小时费率=2.50m;
常量十进制最大费用=20m;
十进制停车费=0;
int[]hoursArray={8,24,9,7,6,12,10,11,23,1,2,9,8,8,9,7,9,15,6,1,7,6,12,10,11,23,1,2,9,8};
控制台写入线(“小时停车费”);
对于(int index=0;index最高停车费)
{
Console.WriteLine(“{0,6}{1,9}”),hoursArray[index],MAX_-FEE.ToString(“N”);
}
其他的
{
Console.WriteLine({0,6}{1,9}),hoursArray[index],parkFee.ToString(“N”);
}
}
}
小数总数=0;
双平均=0;
对于(int index=0;index
使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用系统文本;
使用System.Threading.Tasks;
命名空间控制台应用程序1
{
班级计划
{
静态void Main(字符串[]参数)
{
{
/*伪码
项目:停车场CALC3
*每小时费率=2.50
*最大自由度=20.00
*整数[]小时
*停车费=每小时费率*小时安排
*如果停车时间>最高停车费,则
*输出最大费用
*否则
*输出停车费
*恩迪夫
*/
常量十进制小时费率=2.50m;
常量十进制最大费用=20m;
int[]hoursArray={8,24,9,7,6,12,10,11,23,1,2,9,8,8,9,7,9,15,6,1,7,6,12,10,11,23,1,2,9,8};
十进制[]停车费=新十进制[小时数组长度];
控制台写入线(“小时停车费”);
对于(int index=0;index最高停车费)
{
Console.WriteLine(“{0,6}{1,9}”),hoursArray[index],MAX_-FEE.ToString(“N”);
}
其他的
{
Console.WriteLine({0,6}{1,9}),hoursArray[index],parkFee[index].ToString(“N”);
}
}
}
小数总数=0;
双平均=0;
对于(int index=0;index
}


你可以用数组来实现这一点,因为你只使用了一个变量,这就是为什么你得到的是一个值;到上环

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

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            /*pseudocode
        Program : CarParkCalc3
             * HOURLY_RATE=2.50
             * MAX_FREE=20.00
             * int[]hoursArray 
             * parkFee = HOURLY_RATE * hoursArray
             * IF parkTime > MAX_FEE THEN
             *      OUTPUT MAX_FEE
             * ELSE
             *      OUTPUT parkFee
             * ENDIF
        */


            const decimal HOURLY_RATE = 2.50m;
            const decimal MAX_FEE = 20m;
            decimal parkFee = 0;
            int[] hoursArray = { 8, 24, 9, 7, 6, 12, 10, 11, 23, 1, 2, 9, 8, 8, 9, 7, 9, 15, 6, 1, 7, 6, 12, 10, 11, 23, 1, 2, 9, 8 };
            decimal total = 0;
            double average = 0;

            Console.WriteLine("Hours  Park fee");
            for (int index = 0; index < hoursArray.Length; index++)
            {



                {
                    parkFee = HOURLY_RATE * hoursArray[index];
                    total += parkFee;
                    if (parkFee > MAX_FEE)
                    {
                        Console.WriteLine("{0,6}   {1,9} ", hoursArray[index], MAX_FEE.ToString("N"));
                    }
                    else
                    {
                        Console.WriteLine("{0,6}   {1,9} ", hoursArray[index], parkFee.ToString("N"));
                    }

                }

            }




            average = (double)total / hoursArray.Length;
            Console.WriteLine("Total = " + total);
            Console.WriteLine("Average = " + average.ToString("N2"));
            Console.ReadKey();
        }
    }
}
使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用系统文本;
使用System.Threading.Tasks;
命名空间控制台应用程序1
{
班级计划
{
静态void Main(字符串[]参数)
{
/*伪码
项目:停车场CALC3
*每小时费率=2.50
*最大自由度=20.00
*整数[]小时
*停车费=每小时费率*小时安排
*如果停车时间>最高停车费,则
*输出最大费用
*否则
*输出停车费
*恩迪夫
*/
常量十进制小时费率=2.50m;
常量十进制最大费用=20m;
十进制停车费=0;
int[]hoursArray={8,24,9,7,6,12,10,11,23,1,2,9,8,8,9,7,9,15,6,1,7,6,12,10,11,23,1,2,9,8};
小数总数=0;
双平均=0;
控制台写入线(“小时停车费”);
对于(int index=0;index最高停车费)
{
Console.WriteLine(“{0,6}{1,9}”),hoursArray[index],MAX_-FEE.ToString(“N”);
}
其他的
{
Console.WriteLine({0,6}{1,9}),hoursArray[index],parkFee.ToString(“N”);
}
}
}
平均值=(双倍)总/小时数组长度;
Console.WriteLine(“Total=”+Total);
Console.WriteLine(“Average=“+Average.ToString(“N2”));
Console.ReadKey();
}
}
}

您每次在上for循环中都在计算停车费。总数只是为数组中的每个元素添加相同的parkFee(上一个for循环的计算值)。解决此问题的最佳方法,以及让您了解一些新的内容,就是调试此代码,请注意
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            /*pseudocode
        Program : CarParkCalc3
             * HOURLY_RATE=2.50
             * MAX_FREE=20.00
             * int[]hoursArray 
             * parkFee = HOURLY_RATE * hoursArray
             * IF parkTime > MAX_FEE THEN
             *      OUTPUT MAX_FEE
             * ELSE
             *      OUTPUT parkFee
             * ENDIF
        */


            const decimal HOURLY_RATE = 2.50m;
            const decimal MAX_FEE = 20m;
            decimal parkFee = 0;
            int[] hoursArray = { 8, 24, 9, 7, 6, 12, 10, 11, 23, 1, 2, 9, 8, 8, 9, 7, 9, 15, 6, 1, 7, 6, 12, 10, 11, 23, 1, 2, 9, 8 };
            decimal total = 0;
            double average = 0;

            Console.WriteLine("Hours  Park fee");
            for (int index = 0; index < hoursArray.Length; index++)
            {



                {
                    parkFee = HOURLY_RATE * hoursArray[index];
                    total += parkFee;
                    if (parkFee > MAX_FEE)
                    {
                        Console.WriteLine("{0,6}   {1,9} ", hoursArray[index], MAX_FEE.ToString("N"));
                    }
                    else
                    {
                        Console.WriteLine("{0,6}   {1,9} ", hoursArray[index], parkFee.ToString("N"));
                    }

                }

            }




            average = (double)total / hoursArray.Length;
            Console.WriteLine("Total = " + total);
            Console.WriteLine("Average = " + average.ToString("N2"));
            Console.ReadKey();
        }
    }
}