프로그램/C# - Study / / 2010. 9. 13. 10:26

6D - 배열 , 다차원 배열, Langth(), Sort(), Reverse(), IndexOf() 기능

반응형


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

namespace Ex09Array
{
    class Program
    {
        static void Main(string[] args)
        {
            Random r = new Random(); //난수발생기 선언

            int[] ar = new int[10];
            for (int i = 0; i < 10; i++)
            {
                ar[i] = r.Next(100, 1000); // 100 ~ 999 사이의 난수
                // Next 지정된 범위 내의 난수를 발생
            }

            for (int i = 0; i < 10; i++)
            {
                Console.WriteLine("ar[{0}] = {1}", i, ar[i]);
            }

            // ★ 9/13 ★ 추가부분 ***************************************
            //2. 다차원 배열
            int[,] ar2 = new int[5, 4]; // 2차원 배열 (정방형)5개에 배열에 1개에 4칸씩
            // int[,,] ar3= new int[5, 4, 3]; // 3차원 배열
            for (int i = 0; i < 5; i++)
            {
                for (int j = 0; j < 4; j++)
                {
                    ar2[i, j] = r.Next(100, 1000);
                }
            }
            for (int i = 0; i < 5; i++)
            {
                for (int j = 0; j < 4; j++)
                {
                    Console.Write("{0, -5}", ar2[i, j]); // -5는 왼쪽정렬 5칸 , 5는 오른쪽 정렬
                }
                Console.WriteLine();
            }

            //3. 배열 초기화
            //int x;
            //x = 10;  // 할당, 대입
            //int y = 10; // 초기화 (변수 선언 시점에 특정한 데이터를 저장)

            int[] ar3 = new int[10]{ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
            //int[] ar3 = new int[]{ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; // 갯수미지정 초기화
            //int[] ar3 = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

            for (int i = 0; i < 10; i++)  // 배열의 초기화
            {
                Console.WriteLine("{0, -3}", ar3[i]);
            }
            Console.WriteLine();

            int[,] ar3_1 = new int[2,3]{ {1, 2, 3}, {4, 5, 6} }; // 2개의 배열에 3개의 자료
            for (int i = 0; i < 2; i++)
            {
                for(int j = 0; j < 3; j++)
                {
                    Console.WriteLine("{0, -3}", ar3_1[i, j]);
                }
                Console.WriteLine();
            }

            //4. 배열 지원 메서드 & 프로퍼티
            // Array.Length : 요소의 갯수 반환(그 변수의 갯수를 받아온다)
            // Array.Sort() : 1차원 배열을 오름차순으로 정렬
            // Array.Reverse() : 요소의 순서를 반대방향으로 정렬
            // Array.IndexOf() : 요소내의 데이터 위치를 반환(잘못된 위치는 -1 반환)
            int[] ar4 = new int[10];
            for (int i = 0; i < ar4.Length; i++) // 값을 직접 입력하는건 피하는게 좋다(변수나 다른걸로 처리가 좋다)
            {
                ar4[i] = r.Next(100, 1000); // 100 ~ 999 사이의 난수
            }

            for (int i = 0; i < ar4.Length; i++)
            {
                Console.WriteLine("ar[{0}] = {1}", i, ar4[i]);
            }

            Array.Sort(ar4);  // 배열을 정리!! (단 1차원 배열 오름차순)
            Array.Reverse(ar4); // 배열의 순서를 반대로 만든다( 오름차수 후 하면 내림차순이 된다)
           
            Console.WriteLine("After Sorting");

            for (int i = 0; i < ar4.Length; i++)
            {
                Console.WriteLine("ar[{0}] = {1}", i, ar4[i]);
            }
            Console.WriteLine("검색할 숫자를 입력하세요 : ");
            int number = int.Parse(Console.ReadLine());
            int position = Array.IndexOf(ar4, number);
            Console.WriteLine("{0}은 {1}위치에 있습니다.", number, position);
        }
    }
}

/****************************************************************
 * 배열
 * 1. 동일한 자료형의 데이터 집합
 * 2. 생성시점에 크기가 결정되어야 한다.
 * 3. 배열은 참조형 입니다. (클래스의 객체)
 * 4. 형식 : 자료형 이름 = new 자료형[갯수]; 
 *    예) int[] ar = new int[10];
 * 5. 배열의 요소들은 연속된 메모리 공간에 할당됩니다.
 * 6. 배열의 요소로 다른 배열을 사용하는 것이 가능합니다.(다차원 배열)
 * 7.
 *
 * **************************************************************/

반응형

'프로그램 > C# - Study' 카테고리의 다른 글

6D - private, pubic 접근  (0) 2010.09.13
객체지향은?  (0) 2010.09.13
Report01 - 로또생성기 확인버젼  (0) 2010.09.10
Report01 - 로또생성기  (0) 2010.09.10
5D - 배열  (0) 2010.09.10
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유