显示计算过程的输出

时间:2013-04-11 10:58:24

标签: c# return output multiplication

很抱歉,如果没有以最佳方式解释,但我基本上想要做的是显示我创建的计算的输出。计算是古埃及的乘法(我给了一个故事创建一个程序,用户可以选择使用这种方法计算值,并注意我们没有大声使用*和/运算符)我希望能够显示正在使用的权力,计算的值和总体结果。如果可能的话,我想将所有这些输出都返回到一个弹出框中,但我不确定如何看待它,因为我是C#(Apprentice)的新手。

以下是我想要输出

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

以下是古代egyption乘法我现在的代码: 注意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;

            }
    }
}

1 个答案:

答案 0 :(得分:0)

运行return语句后,将退出该方法。这意味着您的第2和第3 return语句永远不会发生。如果您真的想使用return语句,我建议您返回包含所有3个值的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]);