프로그램/C# - Study / / 2010. 9. 10. 22:20

Report01 - 로또생성기

반응형

-------------------------------------------
로또생성기
i)   1 ~ 45  
     Random
     중복 X
     6개 추출
ii)  평균( 20 ~ 25 ) 아닐경우 다시 반복하여 출력
     Method 써서 코딩

=> 출력 ( 사용자가 원하는 만큼 반복 )
-------------------------------------------


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

namespace Report01_Array_lotto
{
    class Program
    {
        static void Main(string[] args)
        {
            Random r = new Random(); //난수발생기 선언
            int sum = 0;  // 합계 초기값 0 으로 셋팅
            int[] ar = new int[6]; // 로또 번호를 저장한 6개의 배열 생성
            bool arrays = false;   //do ~ while 판별을 위한 bool 초기값 false 로 셋팅
            while (true)
            {
                do
                {
                    arrays = true;
                    sum = 0;

                    // 로또 뽑기 메소드(배열 입력)
                    sum = ArrayIn(r, sum, ar);

                    // 중복 검사 메소드
                    arrays = OverlapCheck(ar, arrays);

                    if (sum / 6 < 20 || sum / 6 > 25)
                        arrays = false;

                } while (arrays == false);

                Print_lotto(sum, ar);// 출력메소드

                Console.WriteLine("-----------------------------");
                Console.Write("중단하려면 y를 입력하세요 : ");
                string yn = Console.ReadLine();
                if (yn.Equals("y"))
                    break;
            }
        }

        private static int ArrayIn(Random r, int sum, int[] ar)
        {
            for (int i = 0; i < 6; i++)
            {

                ar[i] = r.Next(1, 50); // 1 ~ 49 사이의 난수

                sum = ar[i] + sum;
            }
            return sum;
        }

        private static bool OverlapCheck(int[] ar, bool arrays)
        {
            for (int i = 0; i < 5; i++)
            {
                for (int j = i + 1; j < 6; j++)
                {
                    if (ar[i] == ar[j])
                        arrays = false;
                }
            }
            return arrays;
        }

        private static void Print_lotto(int sum, int[] ar)
        {
            for (int j = 0; j < 6; j++)
            {
                Console.WriteLine("로또번호 [{0}] 번째 값은 = {1}", j+1, ar[j]);
            }

            Console.WriteLine("평균은 : {0}", sum / 6);
        }

    }
}

반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유