직접 배열의 크기를 입력하는 방식으로 가로세로 최대 100x100 크기의 달팽이 배열 만들기.
인터넷으로 찾아보고 여기저기 만져봤는데 여러번보고 이해해야 될것같다.
#include <iostream>
using namespace std;
int main() //코드 참고 https://mungto.tistory.com/63
{
restart: //재시작 지점
system("cls"); //재시작할때 화면 깔끔하게
int a[100][100]{ 0 }, n, m, row = 0, col = -1, reverse = 1;
int input;
cout << "가로 x 세로 의 크기를 입력해 주세요.(1~100까지만)" << endl;
cout << "가로 : "; cin >> n;
cout << "세로 : "; cin >> m;
int limit = 0;
cout << endl;
for (int count = 1; count <= n * m;) //총반복의 횟수는 n*m의 숫자까지
{
for (int i = 0; i < m - limit; i++) //가로채우기
{
col += reverse;
a[row][col] = count++;
}
for (int i = 0; i < n - limit - 1; i++)//세로 채우기
{
row += reverse;
a[row][col] = count++;
}
limit++; //최대 반복횟수 감소
reverse = -reverse; //반복이 한번될때마다 역전시킨다.
}
for (int i = 0; i < n; i++) // 출력
{
for (int j = 0; j < m; j++)
cout << a[i][j] << "\t"; //숫자사이에 탭간격두기
cout << endl; // 한행이 끝나면 줄바꾸기
}
cout << endl;
cout << "[ 0 ] 다시입력하기 / [ 그외 ] 종료" << endl;
cin >> input;
if (input == 0) goto restart; // 다시시작하는 부분으로
return 0;
}
'공부' 카테고리의 다른 글
메모리 누수 / 가비지 컬렉션 / 메모리 단편화 (0) | 2022.10.28 |
---|---|
상수와 포문을 이용한 별찍기 과제 (0) | 2022.10.27 |
메모리의 관리(구조/스택프레임/동적할당) (2) | 2022.10.26 |
스트링 활용 빙교 풀이 (0) | 2022.10.26 |
스트링 활용 빙고 (0) | 2022.10.26 |
댓글