6주차 과제 - jaeyong-choi1234/progamming-team-1 GitHub Wiki

Pointer 사용자정의함수 10개

1. 포인터 사용 사용자 정의 함수 10개

  1. Swap 두 정수 위치 바꾸기
#include<stdio.h>

void Swap(int* x, int* y);

int main(void)
{
    int x, y;
    printf("x : ");
    scanf_s("%d", &x);
    printf("y : ");
    scanf_s("%d", &y);
    printf("x : %d | y : %d\n", x, y);
    Swap(&x, &y);
    printf("x : %d | y : %d\n", x, y);
    return 0;
}

void Swap(int* x, int* y)
{
    int tmp = *x;
    *x = *y;
    *y = tmp;
}
  1. PlusOne 정수 하나 입력 받아서 1 더하기
#include<stdio.h>

void PlusOne(int* x);

int main(void)
{
    int x;
    printf("x : ");
    scanf_s("%d", &x);
    PlusOne(&x);
    printf("x : %d\n", x);
    return 0;
}

void PlusOne(int* x)
{
    (*x)++;
}
  1. Sum 정수 누적합
#include<stdio.h>

void Sum(int* result);

int main(void)
{
    int result = 0;
    Sum(&result);
    printf("누적 합 : %d", result);
    return 0;
}

void Sum(int* result)
{
    int addNumber, n;
    printf("시작값 : ");
    scanf_s("%d", result);
    printf("더할 값 : ");
    scanf_s("%d", &addNumber);
    printf("반복해서 더할 횟수 : ");
    scanf_s("%d", &n);
    for (int i = 0; i < n; i++)
        *result += addNumber;
}

4.입력 받은 숫자 2배

#include <stdio.h>

void doubleNumber(int *num) 
{
    *num = *num * 2;
}

int main() {
    int a;

    printf("숫자를 입력하세요: ");
    scanf("%d", &a);

    doubleNumber(&a);

    printf("두 배로 만든 숫자: %d\n", a);

    return 0;
}

5.농구 점수 계산

#include <stdio.h>

void calculateScore(int freeThrows, int twoPointers, int threePointers, int *total) 
{
    *total = freeThrows * 1 + twoPointers * 2 + threePointers * 3;
}

int main() 
{
    int free, two, three;
    int totalScore;

    printf("자유투(1점) 개수 입력: ");
    scanf("%d", &free);

    printf("2점슛 개수 입력: ");
    scanf("%d", &two);

    printf("3점슛 개수 입력: ");
    scanf("%d", &three);

    calculateScore(free, two, three, &totalScore);

    printf("\n총 점수는 %d점 입니다!\n", totalScore);

    return 0;
}

6.다스 계산기

#include <stdio.h>

void convertToDozen(int pencils, int *dozen) 
{
    *dozen = pencils / 12;  
}

int main() 
{
    int pencils, dozen;

    printf("연필의 개수를 입력하세요: ");
    scanf("%d", &pencils);

    convertToDozen(pencils, &dozen);  

    printf("연필 %d자루는 %d 다스입니다.\n", pencils, dozen);

    return 0;
}

7.최댓값 찾기

#include <stdio.h>


int findMax(int* arr, int size) {
    if (arr == NULL || size <= 0) return -1;  

    int max = *arr;
    for (int i = 1; i < size; i++) {
        if (*(arr + i) > max) {
            max = *(arr + i);
        }
    }
    return max;
}

int main() {
    int data[] = {7, 3, 15, 2, 9};
    int size = sizeof(data) / sizeof(data[0]);

    int max = findMax(data, size);

    printf("최댓값: %d\n", max);

    return 0;
}
  1. 최솟값 찾기
#include <stdio.h>


int findMin(int* arr, int size) {
    if (arr == NULL || size <= 0) return -1; 

    int min = *arr;
    for (int i = 1; i < size; i++) {
        if (*(arr + i) < min) {
            min = *(arr + i);
        }
    }
    return min;
}

int main() {
    int data[] = { 7, 3, 15, 2, 9 };
    int size = sizeof(data) / sizeof(data[0]);

    int min = findMin(data, size);

    printf("최솟값: %d\n", min);

    return 0;
}

9.오름 차순정렬

#include <stdio.h>

void sortAscending(int* arr, int size) {
    if (arr == NULL || size <= 1) return;

    for (int i = 0; i < size - 1; i++) {
        for (int j = 0; j < size - 1 - i; j++) {
            int* a = arr + j;
            int* b = arr + j + 1;

            if (*a > *b) {
                int temp = *a;
                *a = *b;
                *b = temp;
            }
        }
    }
}

int main() {
    int data[] = { 5, 1, 4, 2, 8 };
    int size = sizeof(data) / sizeof(data[0]);

    sortAscending(data, size);

    printf("정렬 결과: ");
    for (int i = 0; i < size; i++) {
        printf("%d ", data[i]);
    }
    printf("\n");

    return 0;
}

10.내림차순정렬

#include <stdio.h>

void sortDescending(int* arr, int size) {
    if (arr == NULL || size <= 1) return;

    for (int i = 0; i < size - 1; i++) {
        for (int j = 0; j < size - 1 - i; j++) {
            int* a = arr + j;
            int* b = arr + j + 1;

            if (*a < *b) {
                int temp = *a;
                *a = *b;
                *b = temp;
            }
        }
    }
}

int main() {
    int data[] = { 3, 9, 1, 7, 2 };
    int size = sizeof(data) / sizeof(data[0]);

    sortDescending(data, size);

    printf("정렬 결과: ");
    for (int i = 0; i < size; i++) {
        printf("%d ", data[i]);
    }
    printf("\n");

    return 0;
}
⚠️ **GitHub.com Fallback** ⚠️