0

对不起,如果这可能没有以最好的方式解释,但我基本上想做的是显示我创建的计算的输出。计算是古埃及乘法(我得到了一个故事来创建一个程序,用户可以选择使用这种方法计算值,并注意我们没有大声使用 * 和 / 运算符),我希望能够显示正在使用的功率、正在计算的值和总体结果。如果可能的话,我想将所有这些输出返回到一个弹出框中,但我不确定我将如何处理它,因为我是 C# 新手(学徒)。

这是我想要输出的示例

Powers: 1 + 4 + 8 = 13
Values: (1 * 238) + (4 * 238) + (8 * 238)
Result: 238 + 952 + 1904 = 3094

这是我现在拥有的用于古埃及乘法的代码:注意 iReturnP = Power, iReturnN = Values, iReturn = Result

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace SimpleMath
{
    public class AEM : IOperation
    {
        public int Calculate(int i, int j)
        {

            int[] ints = new int[] { i, j };
            Array.Sort(ints);
            List<int> powers = new List<int>();
            int power = 1;
            int first = ints[0];
            int iReturn = 0;
            int iReturnP = 0;
            int iReturnN = 0;
            do
            {
                powers.Add(power);
                power = new Multiply().Calculate(power, 2);
            } while (power <= first);
            iReturnP += first;
            while (first > 0)

            {
                int next = powers.LastOrDefault(x => x <= first);
                first -= next;
                int powertotal = new Multiply().Calculate(next, i);

                iReturnN += next;
                iReturn += powertotal;
            }
            return iReturnP;
            return iReturnN;
            return iReturn;

            }
    }
}
4

1 回答 1

0

运行return语句后,该方法将退出。这意味着您的第二和第三条return语句将永远不会发生。如果你真的想使用我建议你返回一个包含所有 3 个值的return语句。int[]还有很多其他方法可以解决这个问题。请注意,这只会为您提供总数。我会带你上路,但你必须自己做一些工作。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace SimpleMath
{
public class AEM : IOperation
{
    public static int[] Calculate(int i, int j)
    {

        int[] ints = new int[] { i, j };
        Array.Sort(ints);
        List<int> powers = new List<int>();
        int power = 1;
        int first = ints[0];
        int iReturn = 0;
        int iReturnP = 0;
        int iReturnN = 0;
        do
        {
            powers.Add(power);
            power = new Multiply().Calculate(power, 2);
        } while (power <= first);
        iReturnP += first;
        while (first > 0)

        {
            int next = powers.LastOrDefault(x => x <= first);
            first -= next;
            int powertotal = new Multiply().Calculate(next, i);

            iReturnN += next;
            iReturn += powertotal;
        }
        return new int[]{iReturnP, iReturnN, iReturn};

        }
}
}

然后在您调用计算的方法中:

int[] results = AEM.Calculate(i, j);
MessageBox.Show("Powers: " + results[0] + "\r\n Values: " + results[1] + "\r\n Results: " + results[2]);
于 2013-04-11T11:11:19.977 回答