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の数値の列になりますが、2番目の行は3の集まりであり、0に設定されている場合は2です。また、何かに設定しないと、カウンター変数を宣言するときにエラーが発生します。

方程式を現在の位置に置くと、正方形の変数を何かとして宣言するように求められます(ここでは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ステートメントには常に囲み中括弧を使用することをお勧めします。

^また、これは「の累乗」ではなく、排他的論理和であることに注意してください。

于 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?? これ^xor演算です

これを行う:
square = counter * counter;

と同封

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

for-loopの 内部、または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#の電力演算子ではないことに注意してください。XORに使用されます。

于 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 に答える