Notice
Recent Posts
Recent Comments
Link
«   2026/08   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
Archives
Today
Total
관리 메뉴

강동영의 일상

[쉽게 풀어쓴 C언어 Express] 8일 차 본문

coding

[쉽게 풀어쓴 C언어 Express] 8일 차

rokaf6444 2023. 1. 2. 02:30

01. 2차원 행렬(matrix)에 대한 다음과 같은 함수를 작성하고 테스트하여 보라. 행렬의 크기는 3x3으로 가정한다.

 

scalar_mult(int a[][3], int scalar)

 

 

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

void scalar_mult(int a[][3], int scalar) {
	for (int i = 0; i < 3; i++) {
		for (int j = 0; j < 3; j++) {
			a[i][j] = scalar * a[i][j]; // 행렬의 모든 값에 2를 곱하는 과정
		}
	}
	for (int i = 0; i < 3; i++) {
		for (int j = 0; j < 3; j++) {
			printf("%d ", a[i][j]); // 바뀐 행렬을 시각화
		}
		printf("\n");
	}
}
int main() {
	int a[3][3] = {
		{1, 2, 3},
		{4, 5, 6},
		{7, 8, 9}
	};
	scalar_mult(a, 2); // 배열 a와 곱할 값인 2를 넘기는 과정

	return 0;
}

 

2 4 6
8 10 12
14 16 18

 

 

 

02. 2차원 행렬(matrix)에 대한 다음과 같은 함수를 작성하고 테스트하여 보라. 행렬의 크기는 3x3으로 가정한다.

 

transpose(int a[][3], int b[][3])

 

 

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

void transpose(int a[][3], int b[][3]) {
	for (int i = 0; i < 3; i++) {
		for (int j = 0; j < 3; j++) {
			b[j][i] = a[i][j]; // i와 j의 위치 교환을 통해 대각선 기준으로 값이 교환
		}
	}
}
int main() {
	int a[3][3] = {
		{1, 2, 3},
		{4, 5, 6},
		{7, 8, 9}
	};
	int b[3][3] = { 0, 0, 0 }; // 배열 초기화

	transpose(a, b);

	for (int i = 0; i < 3; i++) {
		for (int j = 0; j < 3; j++) {
			printf("%d ", b[i][j]); // 값이 들어간 배열 b를 시각화
		}
		printf("\n");
	}
	return 0;
}

 

1 4 7
2 5 8
3 6 9

 

 


03. 2개의 정수의 합과 차를 동시에 반환하는 함수를 작성하고 테스트하라. 포인터 매개 변수를 사용한다.

 

void get_sum_diff (int x, int y, int *p_sum, int *p_diff) {

                                         ⋯

}

 

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

void get_sum_diff(int x, int y, int* p_sum, int* p_diff) {
	*p_sum = x + y; // sum이 저장된 공간에 직접 접근하여 값을 입력
	*p_diff = x - y; // diff가 저장된 공간에 직접 접근하여 값을 입력
}
int main() {
	int sum = 0, diff = 0; // 생성한 변수의 값을 초기화

	get_sum_diff(100, 200, &sum, &diff); // 주소값을 보내야 직접 접근하여 값을 입력 가능

	printf("원소들의 합=%d\n", sum);
	printf("원소들의 차=%d\n", diff);

	return 0;
}

 

원소들의 합=300
원소들의 차=-100