【问题标题】:Windows Form Application C# - Change ArrayWindows 窗体应用程序 C# - 更改数组
【发布时间】:2020-02-06 19:38:22
【问题描述】:

我需要制作一个 Windows 表单应用程序,它会告诉您输入的金额需要多少每种类型的硬币。首先,我有一个包含 5 个文本框和一个按钮的表单。第一个文本框供用户输入他们拥有的金额。其余的都是只读的,因此它们只会显示您需要多少枚硬币才能获得用户输入的金额。按钮在那里,他们可以按下它,然后计算出他们需要的每个硬币的数量。

示例: - 如果用户输入 .15,那么在按下按钮后,一角钱的文本框将为 1,而 nikel 的文本框将为 1。

我遇到了麻烦,因为我不确定在为每个硬币制作一个数组后接下来我能做什么。我知道下一步是让表格能够获取输入的金额并查看哪些硬币将达到输入的金额,但我不知道如何开始。这里我的数组在我的计算按钮的点击事件中。有人有建议吗?谢谢(* change 是数组的名称,因为硬币是零钱,不想更改数组)

     int[] change= new int[3];
        change[0] = 1;
        change[1] = 5;
        change[2] = 10;
        change[3] = 25;

【问题讨论】:

  • 这样的?从最高值开始,看看你能适应多少。一旦你这样做了,就可以通过这些值来计算,直到你得到结果。例如,98 可以有 3x25,留下 23。23 可以有 2x10,留下 3。?
  • 顺便说一句,我很困惑,因为起初我以为你想“更改数组”,而实际上你有一个“更改数组”:)
  • 这是我遇到问题的部分,我不确定在代码中使用什么来检查数字进入输入金额的次数。我在考虑一个 if 语句,但我不确定我会在里面放什么。
  • 这可能会帮助您入门:int quarters = (target - (target % quarter)) / quarter;
  • 这些是Remainder operator - % 上的文档,正如他们所说,它返回“将左侧操作数除以右侧操作数后的余数” - 你可以仍然有一些边缘情况需要处理,但这应该足以让您编写代码。

标签: c# winforms


【解决方案1】:

您可以使用Math.DivRem 方法来做到这一点。

示例:

var amount = new Random().Next(1, 101);

Console.WriteLine($"{amount} Change:");

var Quarters = Math.DivRem(amount, 25, out amount);
var Dimes = Math.DivRem(amount, 10, out amount); 
var Nickels = Math.DivRem(amount, 5, out int Pennies);

Console.WriteLine($"Quarters: {Quarters}, Dimes: {Dimes}, Nickels: {Nickels}, Pennies: {Pennies}");

以下是一些输出:

52 更改:
硬币:2,硬币:0,镍币:0,便士:2

34 更改:
硬币:1,硬币:0,镍币:1,便士:4

11 更改:
硬币:0,硬币:1,镍币:0,便士:1

99 变化:
硬币:3,硬币:2,镍币:0,便士:4

【讨论】:

    最近更新 更多