Notice
Recent Posts
Recent Comments
Link
강동영의 일상
[쉽게 풀어쓴 C언어 Express] 8일 차 본문
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'coding' 카테고리의 다른 글
| [자료구조] 트리 (0) | 2023.07.18 |
|---|---|
| [쉽게 풀어쓴 C언어 Express] 9일 차 (0) | 2023.01.03 |
| [쉽게 풀어쓴 C언어 Express] 7일 차 (0) | 2023.01.01 |
| [쉽게 풀어쓴 C언어 Express] 6일 차 (0) | 2022.11.16 |
| [쉽게 풀어쓴 C언어 Express] 5일 차 (0) | 2022.11.15 |