[C/C++] C 언어 동적 메모리 할당을 이용해 구구단 출력Programming/C, C++2021. 4. 21. 13:30
Table of Contents
반응형
안녕하세요!
이번 시간에는 C언어 동적 메모리 할당을 이용해서 구구단을 출력하는 코드를 작성하겠습니다.
대학교 1학년 신입생 때 동적메모리 강의 후 첫 과제로 받았던 기억이 있어요!
그 뒤로 C/C++ 공부를 한 번도 하지 않았지만,
C 공부나 과제하실 때 참고하셨으면 합니다.
과제에서는 동적 메모리를 할당해서 구구단의 결과가 9000의 곱한 값으로 설정하라고 되어 있었습니다.
그냥 구구단으로 출력하고 싶으시다면 * 9000 부분을 제거해주시면 됩니다.
C program code
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int **arr, i, j;
arr = (int **)malloc(sizeof(int*) * 9); //동적 메모리 생성
for(int i = 1; i < 10; i++)
{
*(arr + i)= (int *)malloc(sizeof(int)* 9); //할당
}
for(int i = 1; i < 10; i++)
{
for(int j = 1; j < 10; j++)
{
*(*(arr + i)+ j) = i * j * 9000; //일반 구구단 출력시 * 9000 제거
}
}
for(i = 1; i < 10; i++)
{
printf("%d단은 : ", i);
for(j = 1; j < 10; j++)
{
printf("%d * %d * 9000 : %8d\n\t", i, j, *(*(arr + i) + j));
}
printf("\n");
}
for(i = 0; i < 9; i++)
{
free(*(arr + i)); // 동적 메모리 해제
}
free(arr);
return 0;
}
코드는 간단합니다.
메모리 공간을 동적으로 할당해준 후에 이중 반복문을 이용하여 계산 결과를 변수에 담아준 후에
반복문을 통해 출력합니다.
인자로는 i, j, *(*(arr + i) + j))로 i는 앞, j는 뒤, *(*(arr+i)+j))는 결과 값을 나타냅니다.
8, \n과 \t로 각 결과 값에 대한 인덴트를 맞춰주었습니다.
출력 결과
C 강의를 수강하다 보면 반드시 한 번쯤은 만나는 기초 예제가 구구단 출력입니다.
이번 시간에는 구구단 출력을 동적 메모리 할당을 이용해서 출력해봤습니다.
고생하셨습니다!!
반응형
'Programming > C, C++' 카테고리의 다른 글
[C/C++] C언어 Deque 덱을 이용해 문자열을 입력받아 회문 판별하기 (0) | 2021.04.23 |
---|---|
[C/C++] C언어 문자열을 입력받아 회문 판별하기(공백 제거) (0) | 2021.04.23 |
[C/C++] C언어 스택(Stack)을 이용한 간단한 문자열 압축하기 (0) | 2021.04.23 |
@__Evening :: Good Evening
클라우드, 개발, 자격증, 취업 정보 등 IT 정보 공간
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!