-2

配列またはリストに10を超えない合計を入力するにはどうすればよいですか?これは、3つの配列で行うことができます。そのうちの2つは、答えが10以下の乱数を保持し、3番目の配列には答えが含まれています。

しかし、それはこれを行うための一種の醜い方法です。

私が欲しいものをより明確にするために:

1 + 1 = 2
5 + 5 = 10
3 + 2 = 5

などなど

ユーザーは最初は1+1しか見ることができません。そして、時間切れになると、ユーザーは答えを見ることができます。

それで、誰かが私が試しようとしているものとは別の解決策を持っていますか?

4

2 に答える 2

2

ほとんどの場合、あなたはこのようなことをしようとしています。これはコンパイルされましたが、テストされていません。乱数ジェネレーターと減算を使用してこれらのペアを作成する方法に注意してください。

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

namespace ConsoleApplication1
{
    class Program
    {

        struct addition_pairs{
            public int first;
            public int second;
        }

        static void Main(string[] args)
        { 

         List<addition_pairs> main_list;
         main_list = new List<addition_pairs>();
       //TODO call populate_list and choose how many sets you want.

        }

        private void populate_list(int how_many, List<addition_pairs> list)
        {
            for (int i = 0; i < how_many; i++)
            {
                Random random = new Random();
                int randomNumber1 = random.Next(0, 10);
                addition_pairs insert = new addition_pairs();
                insert.first = randomNumber1;
                insert.second = random.Next(0, 10-randomNumber1);
                list.Add(insert);
            }

        }
    }
}

編集:修正されたので、LOLのたびに10に追加されません。私は約束した数学に合格しました

于 2012-04-28T22:07:09.713 に答える
1

2D配列を使用できます。

int numSums = 4;
int[,] sums = new int[numSums,3];

// 1 + 1 = 2
sums[0,0] = 1;
sums[0,1] = 1;
sums[0,2] = sums[0,0] + sums[0,1];

// 5 + 5 = 10
sums[1,0] = 5;
sums[1,1] = 5;
sums[1,2] = sums[1,0] + sums[1,1];

// 3 + 2 = 5
sums[2,0] = 3;
sums[2,1] = 2;
sums[2,2] = sums[2,0] + sums[2,1];

// 2 + 2 = 4
sums[3,0] = 2;
sums[3,1] = 2;
sums[3,2] = sums[3,0] + sums[3,1];

クラスを使用して、最もクリーンな効果を実現することもできます。

private List<Equation> sums = new List<Equation>();

public MyConstructor() {
    sums.Add(new Equation(5, 5));
    Console.WriteLine (sums[0].a + " + " + sums[0].b  + " = " + sums[0].sum);
}

private class Equation {
    public int a;
    public int b;

    public int sum { 
        get { return a + b; } 
    }

    public Equation(int a, int b) {
        this.a = a;
        this.b = b;
    }
}
于 2012-04-28T22:02:32.430 に答える