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();
}
}
}