【问题标题】:Calculate the algebraic expression in C# [closed]在 C# 中计算代数表达式 [关闭]
【发布时间】:2013-11-08 20:27:09
【问题描述】:

计算代数表达式 Z,其中 n 由用户输入。使用 2 个 for 循环来解决问题。

到目前为止我的代码:

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

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {

            int n, k = 1;
            double z;
            float sum, p;
            n = Console.Read();

            for (int i = 0; i < n; i+=2)
            {
                sum += p;

                for (int j = 0; j < n; j++)
                {
                    p *= (3 * k + 2);
                }

            }

        }
    }
}

我完全处于 for 循环中...感谢任何帮助。

【问题讨论】:

  • 是的,呃,你至少得在这里尝试一下。
  • 您应该在 for 循环中计算 sum += 3k + 2。我忘了西格玛旁边的“大馅饼”是什么意思。但你当然也必须添加它。
  • 从问题的描述中,很难判断你是被实际的数学部分还是编码部分卡住了。如果您了解数学部分,请尝试描述您将采取的手动解决此问题的步骤。获得步骤列表后,开始将它们转换为代码。如果您在特定步骤上遇到困难,我们可以帮助您完成代码部分,但我认为您需要先展示更多的工作。
  • 我尝试了很多次,但我删除了代码,因为我在每种情况下都得到了错误的结果..
  • 您对Console.Read 的使用不正确。您正在读取单个字符的 ascii 值。您想读入一行,然后将其转换为该数字的数字表示:int.Parse(Console.ReadLine())(也可以考虑使用TryParse 进行用户输入)。

标签: c# algebra


【解决方案1】:
  • p 必须初始化为 1 为 0 * X == 0
  • i 和 j(为什么不是 k)也必须初始化为 1,因为它是您的公式所要求的
  • 您必须在计算的产品之后对产品求和,否则您会将正确的结果加 1,并且您不会添加最后计算的产品

所以下面的代码应该给出正确的结果:

        float sum = 0;

        int n = Console.Read();

        for (int i = 1; i <= n; i++)
        {

          float p = 1;
          for (int k = 1; k <= i+2; k++)
          {
            p *= (3 * k + 2);
          }              

          sum += p;
        }

【讨论】:

  • 我得到一个错误——使用未分配的局部变量'p'和'sum'。
  • 是的!纠正它!认为您的其余代码是正确的:)
  • 答案是总和,对吧?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多