옥수수와 식빵 그리고 코딩

8장 배열 연습문제 본문

C/perpect C

8장 배열 연습문제

옥식 2021. 12. 30. 22:50

01. 배열크기 5, 배열에 정수입력값 4개 저장, 마지막 원소에는 앞의 값의 합 저장

#define _CRT_SECURE_NO_WARNINGS
# include <stdio.h>

int main(void)
{
    int arry[5] = { 0 };
    int num;
    int index = 0;
    int sum = 0;

    printf("4개의 정수 입력: ");
    for (int i = 0; i < 4; i++)
    {
        scanf("%d", &num);
        arry[index++] = num; //배열에 값 저장
        sum += num;
    }
    arry[4] = sum; //마지막 원소에 합 저장

    for (int i = 0; i < 5; i++)
    {
        printf("%d ", arry[i]);
    }

    return 0;
}

02. 배열 초기화, 배열의 모든 원소 출력

#define _CRT_SECURE_NO_WARNINGS
# include <stdio.h>

int main(void)
{
    double degree[] = { -5.34, 3.67, 19.76, 28.76, 35.63 };//배열 초기화
    int size = 0;
    
    size = sizeof(degree)/sizeof(degree[0]);//배열의 크기
    printf("배열 원소 값을 출력\n");
    for (int i = 0; i < size; i++)
    {
        printf("%.2lf ", degree[i]);
    }

    return 0;
}

 

03. 배열 초기화 후 배열의 모든 원소를 10씩 증가

#define _CRT_SECURE_NO_WARNINGS
# include <stdio.h>

int main(void)
{
    int data[] = { 3, 21, 35, 57, 34, 82, 8 };
    int size;

    size = sizeof(data) / sizeof(data[0]);
    printf("배열 원소 값을 출력\n");

    for (int i = 0; i < size; i++)
    {
        data[i] += 10;
    }
    for (int i = 0; i < size; i++)
    {
        printf("%d, ", data[i]);
    }
    return 0;
}

 

04. 두 배열을 연결한 배열의 원소값 출력

#define _CRT_SECURE_NO_WARNINGS
# include <stdio.h>

int main(void)
{
    int a[] = { 1, 2, 3, 4, 5 };
    int b[] = { 1, 2, 3, 4, 5, 6, 7 };

    int sizea, sizeb, sizec;
    sizea = sizeof(a) / sizeof(a[0]);
    sizeb = sizeof(b) / sizeof(b[0]);
    sizec = sizea + sizeb;
    int c[12] = { 0 };

    for (int i = 0; i < sizea; i++)//배열 c에 배열a 원소 저장
    {
        c[i] = a[i];
    }
    for (int i = 0; i < sizeb; i++)//배열 c에 배열a 원소 저장 후 배열b원소 저장
    {
        c[i + 5] = b[i];
    }
    for (int i = 0; i < 12; i++)
    {
        printf("%d ", c[i]);
    }
    return 0;
}

 

05. 1차원 배열 복사

#define _CRT_SECURE_NO_WARNINGS
# include <stdio.h>

int main(void)
{
    int a[] = { 1, 2, 3, 4, 5 };
    int b[] = { 10, 20, 30, 40, 50, 60 };
    int sizea, sizeb;
    sizea = sizeof(a) / sizeof(a[0]);
    sizeb = sizeof(b) / sizeof(b[0]);
    for (int i = 0; i < sizea; i++) //배열 b에 배열a값 저장
    {
        b[i] = a[i];
    }
    for (int i = 0; i < sizeb; i++)
    {
        printf("%d ", b[i]);
    }


    return 0;
}

 

06. 배열의 총 합과 평균

#define _CRT_SECURE_NO_WARNINGS
# include <stdio.h>

int main(void)
{
    double arry[] = { 1.1, 2.2, 3.3, 4.4, 5.5, 6.6 };
    int size;
    size = sizeof(arry) / sizeof(arry[0]);
    double sum = 0, aver;

    for (int i = 0; i < size; i++)
    {
        sum += arry[i];
    }
    aver = sum / size;

    printf("합: %.3lf  평균: %.3lf", sum, aver);

    return 0;
}

 

07. 배열의 빈도수와 몇번인지 출력

참고:https://zifmfmphantom.tistory.com/34

 

Perfect C 프로그래밍 연습 9장 7, 8, 9, 10번 해결

문제 7. 배열의 총합과 평균 구하기 //문제7 double score[] = {98.56, 78.62, 78.69, 89.32, 95.29}; double sum = 0; //합계 저장 double avg = 0; //평균 저장 //score의 원소값 출력 for(int i=0; i 배열의..

zifmfmphantom.tistory.com

#define _CRT_SECURE_NO_WARNINGS
# include <stdio.h>

int main(void)
{
    int arry[20] = { 0 }; //입력 값 저장할 배열
    int bins[10] = { 0 }; //0~9의 빈도 수 저장할 배열
    int max = 0; //빈도가 가장 많은 수 저장

    printf("0 ~ 9까지의 정수 입력\n");

    for (int i = 0; i < 20; i++)//값 입력받기
    {
        scanf("%d", &arry[i]);
    }
    for (int i = 0; i < 20; i++)
    {
        bins[arry[i]] += 1; //빈도 수 저장
    }
    for (int i = 0; i < 10; i++)//가장 큰 빈도 구하기
    {
        if (bins[max] < bins[i])
        {
            max = i; //더 큰 빈도가 있다면 교체
        }
    }
    printf("가장 많이 나온 수는 %d이고, %d번 나왔습니다.", max, bins[max]);
    return 0;
}

 

08. 윤년을 이용해 달의 말일을 배열에 저장하고 연도와 월을 입력받아 그 해 그 달의 말일 출력

#define _CRT_SECURE_NO_WARNINGS
# include <stdio.h>

int main(void)
{
    int month[12] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };//매년 말일
    int year, mon;
    printf("연도와 월을 입력하면 그 달의 말일 알려드림\n");
    scanf("%d %d", &year, &mon);

    if ((year % 4 == 0 && year % 100 == 0) || (year % 400 == 0))//윤년이면 2월은 29일
        month[1] = 29;
    mon -= 1;
    printf("%d년 %d월의 말일은 %d일 입니다.", year, mon, month[mon]);
    return 0;
}

 

09. 다음 식의 계산값을 배열 10개에 저장하고 출력해라

#define _CRT_SECURE_NO_WARNINGS
# include <stdio.h>

int main(void)
{
    double arry[10] = { 0 };

    for (int i = 0; i < 10; i++)
    {
        arry[i] = 1.0 / ((i + 2) * (i + 3)); //1이 아니라 1.0을 해야 실수 형태로 나옴
    }
    for (int i = 0; i < 10; i++)
    {
        printf("arry[%d] = %.3lf\n", i, arry[i]);
    }
    return 0;
}

 

10. 2차원 배열...하다 말았음 마저 하삼

#define _CRT_SECURE_NO_WARNINGS
# include <stdio.h>

int main(void)
{
    int arry[5][4] = { 97, 90, 88, 95, 76, 89, 75, 83, 60, 70, 88, 82, 83, 89, 92, 85, 75, 73, 72, 78 };
    int sum = 0;
    double aver = 0;

    printf("  중간  중간   기말   기말 \n");
    printf("======================================\n");

    for (int i = 0; i < 5; i++)
    {
        for (int j = 0; j < 4; j++)
        {
            printf("%5d", arry[i][j]);
        }
        
        printf("\n");
    }

    return 0;
}

 

11.

 

 

12.

 

 

 

'C > perpect C' 카테고리의 다른 글

10장 변수 유효범위 연습문제  (0) 2022.01.05
9장 연습문제  (0) 2022.01.01
7장 연습문제  (0) 2021.12.29
6장 연습문제  (0) 2021.12.29
5장 연습문제  (0) 2021.12.28
Comments