최신 글
-
C언어 [code] 2차원 좌표 정렬하기 문제 설명2차원 평면 위의 점 개수 N을 입력받아,N개의 점 좌표 (x, y)를- x 좌표가 증가하는 순서로 정렬하고,- x 좌표가 같다면 y 좌표가 증가하는 순서로 정렬하여정렬된 결과를 출력하시오. 예시 입력:5 3 4 1 1 1 -2 3 2 0 0 예시 출력: 1 -2 1 1 3 2 3 4코드 작성#include #include // qsort 사용을 위해 필요// 점을 저장하는 구조체typedef struct { int x; int y;} Point;// qsort에서 사용할 비교 함수int cmp(const void* a, const void* b) { Point* p1 = (Point*)a; Point* p2 = (Point*)b; // x좌표가 먼저 비교 ..
-
C언어 [code] 달팽이 배열 출력하기 문제 설명정수 n(100 이하)을 입력받아 n × n 크기의 달팽이 배열(나선형 배열) 을 출력하시오. 달팽이 배열이란,배열의 왼쪽 위 (0,0) 에서 시작하여,먼저 오른쪽 방향으로 숫자를 채우고,그 다음 아래 → 왼쪽 → 위 방향으로 회전하면서1부터 n × n까지의 숫자를 시계방향으로 채워 나가는 2차원 배열입니다.예를 들어, n = 4를 입력하면 결과는 다음과 같습니다. 1 2 3 4 12 13 14 5 11 16 15 6 10 9 8 7 요구 조건정수 n을 입력받는다. (1 ≤ n ≤ 100)n × n 크기의 2차원 정수 배열을 선언한다.달팽이 모양 규칙에 따라 배열에 1부터 n × n까지의 값을 채운다.완성된 배열을 행 단위로 화면에 출력한다.코드 작성#incl..
-
C언어 [code] 마방진 구하기 문제 설명홀수 N을 입력 입력 받았을 때, NxN 크기의 마방진을 출력하는 프로그램.(정수 15까지) 마방진 규칙1. 첫 번째 행, 가운데 열에 1을 넣는다.2. 다음 숫자는 항상 ‘위로 한 칸, 왼쪽으로 한 칸’ 이동해 배치한다.3. 범위를 벗어나면 반대편으로 이어지고, 이미 숫자가 있으면 직전 숫자의 아래로 내려간다.4. 모든 숫자가 채워질 때까지 2번 3번을 반복한다.코드 작성#include int main() { int n = 0; scanf("%d", &n); int arr[15][15] = {}; int num, row = 0, col = n/2; for(num = 1; num
-
C언어 정렬 정렬버블 정렬가장 단순한 정렬 알고리즘으로, 이웃한 두 데이터를 비교하여 잘못된 순서일 경우 서로 교환(swap) 하는 방식이다.가장 큰(또는 작은) 값이 “거품처럼” 배열 끝으로 밀려가기 때문에 Bubble Sort라고 부른다. 동작 원리1. 첫 번째와 두 번째 원소를 비교해서 순서가 잘못되어 있으면 교환한다.2. 두 번째와 세 번째, 세 번째와 네 번째 … 이런 식으로 끝까지 반복한다.3. 한 번의 순회(pass)가 끝나면 가장 큰 값이 맨 끝으로 확정된다.4. 남은 부분에 대해 위 과정을 반복한다.#include #define N 5void BubbleSort(int arr[], int);int main() { int numArr[N]; for(int i=0; i arr[j+1]) {..
-
C언어 포인터 포인터 기본 개념주소(Address)데이터가 저장되어 있는 기억장소(메모리)에 Byte 단위로 부여된 번지 포인터(Pointer)데이터가 기억되어 있는 메모리의 주소 표현 포인터 변수다른 변수의 메모리 주소를 저장하는 변수 포인터 연산자& (번지 연산자) - 변수의 주소를 구함👉 예: ptr = &a; → a의 주소를 ptr에 저장 * (간접 참조 연산자) - 포인터가 가리키는 값을 사용👉 예: b = *ptr; → ptr이 가리키는 변수의 값을 b에 저장 주의: 포인터 변수는 주소지정 없이 값을 대입할 수 없다.예: int *p = 10; → 불가 int *ptr, data;ptr = &data;data = 100;printf("ptr=%p, *ptr=%d\n", ptr, *ptr); // 주소와..