Professional Documents
Culture Documents
11 주차 실습 과제
문제 : 11 주차 실습과제 1
소스코드 및 주석
//입력받은 두 값의 순서를 바꾸기_포인터
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
void swap(int *x, int *y); //swap 함수는 두 개의 포인터 변수를 인자로 받아서 그 포인터가 가리키는
변수의 값을 서로 바꾸는 역할
int main(void)
{
int a, b;
return 0;
}
}
코드 해석
이 코드는 두 개의 정수를 입력받아서 그 두 수를 서로 바꾸는 swap 함수를 구현하고
있습니다. swap 함수는 두 개의 포인터 변수를 인자로 받아서 그 포인터가 가리키는
변수의 값을 서로 바꾸는 역할을 합니다. 예를 들어, swap(&a, &b)라고 호출하면 a 와 b
의 값이 서로 바뀌게 됩니다. 이 코드에서는 swap 함수가 main 함수 밖에 정의되어
있습니다. 이렇게 함수를 따로 정의해놓으면 같은 기능을 하는 코드를 여러 번 작성할
필요 없이 함수를 호출해서 사용할 수 있습니다.
결과화면
소감
이 코드를 작성하면서 C 언어의 포인터와 함수에 대해 더욱 깊게 이해할 수 있었습니다.
또한, 이 코드를 작성하면서 프로그래밍에 대한 흥미와 자신감이 생겼습니다.
문제 : 11 주차 실습과제 2
소스코드 및 주석
//n*n 배열_2 차원 배열
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int n;
scanf("%d", &n);
int arr[50][50] = { 0, }; //이 코드는 50 x 50 크기의 2 차원 배열 arr 을 생성하고, 배열의 모든
원소를 0 으로 초기화하는 코드
for (int i = 0; i < n; i++) //이 코드는 0 부터 n-1 까지의 값을 가지는 변수 i 를 선언하고, i 가 n
보다 작은 동안 반복하는 코드
{
for (int j = 0; j < n; j++) //이 코드는 0 부터 n-1 까지의 값을 가지는 변수 j 를 선언하고, j 가
n 보다 작은 동안 반복하는 코드
{
arr[i][j] = i * n + j + 1; //이 코드는 2 차원 배열 arr 의 i 행 j 열에 i * n + j + 1 값을
대입하는 코드
printf("%2d ", arr[i][j]); //이 코드는 2 차원 배열 arr 의 i 행 j 열에 저장된 값을 출력하는
코드, "%2d "는 정수를 2 자리로 출력하고, 공백을 한 칸 띄우는 형식
}
printf("\n");
}
return 0;
}
코드 해석
이 코드는 n 을 입력받아서 n x n 크기의 2 차원 배열을 생성하고, 배열의 각 원소에 1
부터 n^2 까지의 숫자를 대입하는 코드입니다. 이 코드에서는 int 형 변수 n 과 2 차원
배열 arr 이 선언되어 있습니다. 이 변수들은 main 함수 내에서 사용됩니다. scanf(“%d”,
&n);은 사용자로부터 정수를 입력받아서 변수 n 에 저장하는 코드입니다.
arr[i][j] = i * n + j + 1;은 i 와 j 를 이용해서 2 차원 배열 arr 의 각 원소에 값을 대입하는
코드입니다. 이 코드에서는 i * n + j + 1 을 이용해서 1 부터 n^2 까지의 숫자를
생성합니다. printf("%2d ", arr[i][j]);는 arr[i][j]에 저장된 값을 출력하는 코드입니다. %2d
는 출력할 값이 두 자리 수일 경우 왼쪽에 공백을 추가해서 출력하라는 의미입니다.
결과화면
소감
이 코드를 작성하면서 C 언어의 2 차원 배열을 이해하는 데 도움이 되었습니다. 또한 이
코드를 작성하면서 반복문을 사용하는 방법과 배열을 초기화하는 방법 등 C 언어의
기본적인 개념을 익혔습니다. 이러한 경험이 프로그래밍 실력 향상에 도움이 되었습니다.