C#循环语句,新手需要的帮助
我是c#的新手,需要一些循环语句的帮助 我正在设计一个程序,计算每英里的成本(50便士),每1000英里增加30英镑作为磨损费 我很难理解逻辑,如果有人能给我一些建议那就太好了C#循环语句,新手需要的帮助,c#,C#,我是c#的新手,需要一些循环语句的帮助 我正在设计一个程序,计算每英里的成本(50便士),每1000英里增加30英镑作为磨损费 我很难理解逻辑,如果有人能给我一些建议那就太好了 namespace ConsoleApplication10 { class Program { static void Main(string[] args) { Console.WriteLine("Input start milleage:"); decima
namespace ConsoleApplication10
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Input start milleage:");
decimal StartMile = Convert.ToDecimal(Console.ReadLine());
Console.WriteLine("Input Finish milleage:");
decimal FinishMile = Convert.ToDecimal(Console.ReadLine());
decimal TotalMilleage = FinishMile - StartMile;
if (TotalMilleage < 1000)
TotalMilleage = TotalMilleage / 2;
Console.WriteLine("Total charge for hire:{0:C}", TotalMilleage);
Theres the code Ive done so far :S
命名空间控制台应用程序10
{
班级计划
{
静态void Main(字符串[]参数)
{
Console.WriteLine(“输入起始千年:”);
decimal startFile=Convert.ToDecimal(Console.ReadLine());
Console.WriteLine(“输入完成千年:”);
decimal FinishMile=Convert.ToDecimal(Console.ReadLine());
十进制总里程=完成里程-开始里程;
如果(总千年<1000)
总里程=总里程/2;
Console.WriteLine(“租用总费用:{0:C}”,TotalMilleage);
这是我到目前为止所做的代码:S
您不需要循环,只要这样表达,假设1000英里后只收取30英镑
double price = 0.5 * DistanceInMile + ((int)(DistanceInMile /1000)) *30;
计算英里数是一个
int
我不确定我是否明白这个问题,但是:
double price = 0.5 * miles + 30 * (miles / 1000);
这样,在行驶1200英里时,您只需添加一次30.00英镑。如果您想添加两次:
int times = miles / 1000;
if (miles % 1000 != 0)
times++;
double price = 0.5 * miles + 30 * times;
正如已经指出的那样,算术更好,然而,由于这是一个编程练习,有很多方法可以做到这一点 首先,假设你使用的是整数英里
int miles=4555; // example mile count;
decimal cost=0; // starting cost;
int mileCounter=0;
for (int i=1; i<=miles;i++) {
cost += 0.5m;
mileCounter++;
if ( mileCounter == 1000) {
mileCounter = 0;
cost += 30;
}
}
我们可以看到您尝试过的代码吗?发布您到目前为止的代码,以便我们可以看到您所做的事情。作为提示,您不需要使用循环来解决这个问题-您可以使用简单的算术来解决它。@Shaddai在得到大量的-1之前,请加快速度。通常,您可以在问题正文中显示您尝试过的内容。
Convert.ToInt32
如果f分数部分是>=0.5
你说得对@Rawling,更正假设英里数是整数
;如果是浮动类型,你将得到部分30英镑。(你的第二个区块解决了这个问题。)是的,我想都没想就假设了。。
int miles=4555; // example mile count;
decimal cost=0; // starting cost;
int mileCounter=0;
for (int i=1; i<=miles;i++) {
cost += 0.5m;
mileCounter++;
if ( mileCounter == 1000) {
mileCounter = 0;
cost += 30;
}
}
for (int i=1; i<=miles;i++) {
cost += 0.5m;
if ((i % 1000) == 0) {
cost += 30;
}
}
decimal cost = 0.5m * miles;
for (int i=1000; i<= miles; i+=1000) {
cost += 30;
}
decimal cost = 0.5m * miles + (30 * Math.Truncate(miles/1000m));