티스토리 뷰

프로그래밍/c 언어

c언어 - 배열 기초 예제

주식하는 개발자 2020. 2. 9. 01:30

[C언어 - 배열 기초 예제]

배열을 사용한 간단한 기초 예제 4가지를 준비해보았습니다.

문제 설명과 입출력 예제와 출력 결과를 참고해서

프로그램을 만들어보세요.

 

정답 코드는 페이지 맨 아래쪽

따로 정리해놓았습니다.

 

 

 

[배열 예제 풀어보기]

 


1. 5명 학생의 성적을 입력받고 

출력시켜보세요.

 

 

◎입력 예제

10

20

30

40

50

 

◎출력 예제

1번째 학생의 성적은 10점입니다.

2번째 학생의 성적은 20점입니다.

3번째 학생의 성적은 30점입니다.

4번째 학생의 성적은 40점입니다.

5번째 학생의 성적은 50점입니다.

 

 

(출력 결과)

 


2. 배열을 거꾸로 출력시키기

배열을 사용해 6개의 숫자를 입력받고

6개의 숫자를 거꾸로 출력시키는

예제를 만들어 보세요.

 

 

◎입력 예제

1 3 5 7 10 15

 

 

 

◎출력 예제

15 10 7 5 3 1

 

 

(출력 결과)

 


3. 배열을 사용해 

홀수와 짝수를 구분해 출력시키기

 

 

◎입력 예제

1 2 8 10 13 17

 

 

◎출력 예제

1 13 17

2 8 10

 

 

(출력 결과)

 

 

 


 

4. 자리 찾아가기 

오름 차 순으로 정렬된 숫자 6개가 저장되는 배열을 선언해 주시고

숫자를 입력받았을 때 

그 숫자가 배열 안에서 자기 자리를 찾아가는

프로그램을 만들어보세요.

 

예를 들어, 1 3 5 7 10 15 이라는 배열이 선언되고

숫자 11이 입력되면

10 과 15 사이에 자리를 찾아가

1 3 5 7 10 11 15 가 출력되는 방식입니다. 

 

 

◎입력 예제

1 3 5 7 10 15

11

 

 

◎출력 예제

1 3 5 7 10 11 15

 

 

 

(출력 결과)

 

 

 


 

[정답 코드 및 설명]

 

 

1. 5명의 점수를 저장할 배열을 선언해줍니다.

for 문을 사용해 5명의 점수를 입력시켜줍니다.

마지막으로 입력된 점수를 

반복문을 사용해 출력시켜줍니다.

#include <stdio.h>
 
 
int main(void)
{
    int score[5];
    
    printf("5명 학생의 점수 입력 : \n");
 
    for (int i = 0; i < 5; i++) {
        scanf_s("%d"&score[i]);
    }
 
    for (int j = 0; j < 5; j++) {
        printf("%d번째 학생의 점수는 %d점 입니다. \n",j+1,score[j]);
    }
}
cs

 

 

 

 

2. 배열을 선언해주시고

for 문을 사용해 6개의 숫자를 입력받습니다. 

다음 for문을 5부터 0까지 거꾸로 돌려서

배열을 거꾸로 출력시켜줍니다.

#include <stdio.h>
 
 
int main(void)
{
    int arry[100];
    int i;
 
    for (i = 0; i <= 5; i++)
    {
        scanf_s("%d"&arry[i]);
    }
 
    for (i = 5; i >= 0; i--)
    {
        printf("%d ", arry[i]);
    }
    
    return 0;
}
 
cs

 

 

 

 

3. 배열을 선언해주시고

6개의 숫자를 입력받아줍니다.

for 문안에 조건문을 사용해

홀수와 짝수를 구분해 출력시켜줍니다.

#include <stdio.h>
 
 
int main(void)
{
    int arry[100];
    int i;
 
    for (i = 0; i <= 5; i++)
    {
        scanf_s("%d"&arry[i]);
    }
 
    for (i = 0; i <= 5; i++)
    {
        if (arry[i] % 2 == 1printf("%d ", arry[i]);
    }
 
    printf("\n");
 
    for (i = 0; i <= 5; i++)
    {
        if (arry[i] % 2 == 0printf("%d ", arry[i]);
    }
    
    return 0;
}
cs

 

 

 

 

4. 어느 정도 난이도있는 문제입니다.

우선 총 7개의 숫자가 출력될 것이기 때문에 아래와 같이 배열을 선언해줍니다.

insert는 삽입해 줄 숫자를 저장할 변수입니다.

temp는 삽입할 위치를 잠시 기억해두기 위해 사용될 변수입니다.

 

for 문을 통해 6개의 배열을 입력받습니다.

그 후 삽입될 숫자를 입력받습니다.

마지막으로 for 문을 5부터 0까지 거꾸로 돌려줍니다.

for 문을 돌다가 arry[i] 가 insert 보다 크게 되면 

arry[i] 에 들어있는 숫자를 arry[i+1]에 저장해 뒤로 밀어줍니다.

그럼 삽입될 자리가 비어있게 되고

arry[temp] = insert를 사용해 비어있는 자리에 넣어줍니다.

 

마지막으로 결과값을 출력시켜줍니다.

#include <stdio.h>
 
 
int main(void)
{
    int arry[7];
    int insert;
    int i, j, temp;
    for (i = 0; i < 6; i++) {
        scanf_s("%d "&arry[i]);
    }
 
    scanf_s("%d"&insert);
 
    for (i = 5; i >= 0; i--)
    {
        if (arry[i] > insert) {
            arry[i + 1= arry[i];
            temp = i;
        }
        else break;
    }
 
    arry[temp] = insert;
 
    for (j = 0; j < 7; j++) {
        printf("%d ", arry[j]);
    }
}
cs