본문 바로가기
이것저것/C언어

C언어 하는데 필요한 배열 주요 코드 모음

by 임 낭 만 2024. 4. 30.

그래도 꽤나 많이 적었네요..

다만, 질이 많이 떨어짐..


포인터 정리하는 글에 추가로 올리려고 했는데...

그래 정리하려고 올리는 건데 짬뽕으로 섞으면 안 되지..

어휴 귀찮아 갑자기 이걸 왜 시작해서는

아무튼 우당탕탕 시작

배열에서 더 큰 원소의 수 세기

1) 변수 이용법

int main() {
    int i, j, x[5], cnt;

    for (i = 0; i < 5; i++)
        scanf("%d", &x[i]);

    for (i = 0; i < 5; i++) {
        cnt = 0;
        for (j = 0; j < 5; j++)
            if (x[i] < x[j])
                cnt++;
        printf("%d\n", cnt);
    }

    return 0;
}

 

2) 배열 이용법

int main() {
    int i, j, x[5], cnt[5];

    for (i = 0; i < 5; i++)
        scanf("%d", &x[i]);

    for (i = 0; i < 5; i++) {
        cnt[i] = 0;
        for (j = 0; j < 5; j++)
            if (x[i] < x[j])
                cnt[i]++;
        printf("%d\n", cnt[i]);
    }

    return 0;
}

 

작은 원소 개수 셀 때, 같은 원소 개수 셀 때에는 if 문의 부호를 >, ==으로 바꾸면 됨.


배열에서 중복된 원소를 제외한 나머지 원소 출력

이런 식으로

1) 앞 쪽을 비교

int main() {
    int i, j, x[5], flag;

    for (i = 0; i < 5; i++)
        scanf("%d", &x[i]);

    for (i = 0; i < 5; i++) {
        flag = 0;
        for (j = 0; j < i; j++)
            if (x[i] == x[j])
                flag = 1;
        if (flag == 0)
            printf("%d\n", x[i]);
    }

    return 0;
}

2) 뒤 쪽을 비교

int main() {
    int i, j, x[5], flag;

    for (i = 0; i < 5; i++)
        scanf("%d", &x[i]);

    for (i = 0; i < 5; i++) {
        flag = 0;
        for (j = i + 1; j < 5; j++)
            if (x[i] == x[j])
                flag = 1;
        if (flag == 0)
            printf("%d\n", x[i]);
    }

    return 0;
}

오름차순 정렬하기

1) 버블 정렬

int main() {
    int i, j, x[5], temp;

    for (i = 0; i < 5; i++)
        scanf("%d", &x[i]);

    for (i = 0; i < 4; i++) {
        for (j = 0; j < 4; j++)
            if (x[j] > x[j + 1]) {
                temp = x[j];
                x[j] = x[j + 1];
                x[j + 1] = temp;
            }
    }
    for (i = 0; i < 5; i++)
        printf("%d\n", x[i]);

    return 0;
}

(2) 이거 이름 뭐라고 불러야 되냐 맨 앞에다가 가장 큰 거 두는 방식

int main() {
    int i, j, x[5], temp;

    for (i = 0; i < 5; i++)
        scanf("%d", &x[i]);

    for (i = 0; i < 4; i++) {
        for (j = i + 1; j < 5; j++)
            if (x[i] > x[j]) {
                temp = x[i];
                x[i] = x[j];
                x[j] = temp;
            }
    }
    for (i = 0; i < 5; i++)
        printf("%d\n", x[i]);

    return 0;
}

내림차순은 부등호만 바꾸면 끝

뭐 안 쓴 것 같냐 왜...

필요한 코드는 다 썼겠지 모...

암튼 즐코


이제 앞으로 한 세 개 정도 남았군요

댓글