2

我想使用 for 循环在 C# 中制作数字及其平方的列表。

现在我有:

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

            int counter;
            int square = 1;
            const int maxValue = 10;


            Console.WriteLine("Number  Square");
            Console.WriteLine("-------------------");
            {
                for (counter = 1; counter <= maxValue; counter++)
                    square = counter ^ 2;
                Console.WriteLine("{0}   {1}",  counter, square);
            }

         }
      }

   }

但我的输出只有 11 和 8。

当我将“square = counter ^ 2”放在变量声明的正下方时,我最终得到一列数字 1-10,但第二行只是一堆三,如果它们设置为 0,它们就是二。如果我没有将它设置为某个值,它也会给我一个错误来声明计数器变量。

当我把方程放在现在的位置时,它要求将 square 变量声明为某物(这里它是 1)。

另外我是一个初学者,我还没有学习过课程,所以我希望任何更正都不包括它们。

编辑:固定,天哪,我上次没有犯这个错误,是的,我需要更多的练习。对不起

4

7 回答 7

2

您不小心使用了简写来声明 for 循环块。

for 语句后面应该跟花括号来指示要执行的块。但是,如果您跳过大括号,它只会抓住“下一行”。在您的情况下,仅square = counter ^ 2;在循环中执行。但是,^ 运算符用于 xor 操作,而不是 pow。

你想要这个:

Console.WriteLine("Number  Square");
Console.WriteLine("-------------------");

for (counter = 1; counter <= maxValue; counter++)
{
    square = counter * counter;
    Console.WriteLine("{0}   {1}",  counter, square);
}
于 2013-03-03T08:29:42.583 回答
1

试试这个你的计数器循环:

for (counter = 1; counter <= maxValue; counter++)
{
   square = Math.Pow(counter, 2);
   Console.WriteLine("{0}   {1}",  counter, square);
}
于 2013-03-03T08:30:33.193 回答
1

牙套的位置很重要:

 Console.WriteLine("Number  Square");
 Console.WriteLine("-------------------");

 for (counter = 1; counter <= maxValue; counter++)
 {
     square = counter * counter;
     Console.WriteLine("{0}   {1}",  counter, square);
 }

注意for:出于这个原因,最好始终对循环和if语句使用大括号。

另请注意,这^不是“权力”而是独占 OR

于 2013-03-03T08:31:13.677 回答
0

^ 运算符不是用于此目的。请改用 System.Math.Pow()。示例: var square = Math.Pow(3, 2)。这将给出 9。

于 2013-03-03T08:30:33.793 回答
0

square = counter ^ 2?? 这^是一个异或运算

做这个:
square = counter * counter;

并附上

{
    square = counter * counter;
    Console.WriteLine("{0}   {1}",  counter, square);
}

for - 循环

内 或更好地使用Math.pow方法

于 2013-03-03T08:31:03.560 回答
0

您的 for 循环处于速记模式。你console.writeline在 for 循环之外。

尝试用这个替换行

for (counter = 1; counter <= maxValue; counter++)
{
  square = counter * counter;
  Console.WriteLine("{0}   {1}",  counter, square);
}

请注意,^ 不是 C# 中的幂运算符。它用于异或。

于 2013-03-03T08:31:47.873 回答
0

我会使用:

    private void sqtBtn_Click(object sender, EventArgs e)
    {
        outputList.Items.Clear();

        int itemValue, sqt;

        for (int i = 0; i < randomNumAmount; i++)
        {
            int.TryParse(randomList.Items[i].ToString(), out itemValue);

            outputList.Items.Add(Math.Sqrt(itemValue).ToString("f"));
        }
    }
于 2017-10-19T22:56:08.723 回答