CH.개인기록 노트

C#은 처음이라

C# 배열 활용

amckdgjs 2024. 3. 6. 13:36

Q.아파트 주민 수 구하기
            1. 각 층에는 3개의 호실만 존재하고 3층까지 있음
            2.각 층의 각 호에 가족이 몇명 사는지 입력을 받고 배열에 저장한다.
            3.아파트의 총 몇명이 살고 있는지 합을 구해라.

            int[,] numApt = new int[3, 3];//3x3 배열
            int total = 0; //total이라는 변수 초기화
            for (int i = 0; i < 3; i++)
            {
                for (int j = 0; j < 3; j++)
                {

                    Console.Write("각 층 호수에 가족은 몇명살고있나?{0}층--------{1}호\t", i + 1, j + 1);
                    numApt[i, j] = int.Parse(Console.ReadLine());//{}를 통해 출력
                }

            }
            for (int i = 0; i < 3; i++)
            {
                for (int j = 0; j < 3; j++)
                {
                    total += numApt[i, j];//total에 입력받은 수 총 합 저장
                }
            }
            foreach (var item in aprt)
            {
                total += item;
            }
            console.writeline($"총 주민수 : {total}명이 살고있다");
            Console.WriteLine($"총 주민수 : {total}명이 살고있다");

            ConsoleKeyInfo input = Console.ReadKey(true);

5x5 표에서 움직이기?

int[] number = new int[25];
int dest;
int sour;
int temp;

int save = 24;
int move;

Random rand = new Random();
for (int i = 24; i >= 0; i--)
{
    number[save - i] = i;
}
for (int i = 0; i < 200; i++)
{
    dest = rand.Next(24);
    sour = rand.Next(24);
    temp = number[dest];
    number[dest] = number[sour];
    number[sour] = temp;
}
while (true) 
{
    Console.Clear();
    Console.WriteLine("움직여라");

    for (int i = 0;i < number.Length; i++)
    {
        Console.Write($"{number[i]}\t");
        if((i+1)%5==0)//i 를 5로 나눴을 때 나머지가 0이면
        {
            Console.WriteLine("\n\n\n");//줄 바꾸기 실행
        }
    }
    ConsoleKeyInfo inputKey=Console.ReadKey(true);
    if (number[0]==0)
    {
       Console.WriteLine("승리!!");
        break;
    }
    switch (inputKey.Key)
    {
       
        case ConsoleKey.LeftArrow:

            if (save % 5 == 0) //나눴을 때 나머지가 0이면 break
            {
                break;
            }
            move = number[save];
            number[save] = number[save - 1];
            number[save - 1] = move;
            save--;
            break;

        case ConsoleKey.RightArrow:
            if (save % 5 == 4)//나눴을 때 나머지가 4 면 break
            {
                break;
            }
            move = number[save];
            number[save] = number[save + 1];
            number[save + 1] = move;
            save++;
            break;

        case ConsoleKey.UpArrow:
            if (save / 5 == 0)//5로 나눴을 때 몫이 0이면 break
            {
                break;
            }
            move = number[save];
            number[save] = number[save - 5];
            number[save - 5] = move;
            save -= 5;
            break;
        case ConsoleKey.DownArrow:
            if (save / 5 == 4)//5로 나눴을 때 몫이 4면 break
            {
                break;
            }
            move = number[save];
            number[save] = number[save + 5];
            number[save + 5] = move;
            save += 5;
            break;
        
    }
     
    }

'C#은 처음이라' 카테고리의 다른 글

C# 문자열(string)  (0) 2024.03.07
C# 가상함수  (0) 2024.03.06
C# 추상화(Abstract)  (0) 2024.03.06
C# 캡슐화  (0) 2024.03.06
C# 데이터 형식  (1) 2024.03.04