2025년, 코딩은 선택이 아닌 필수!

2025년 모든 학교에서 코딩이 시작 됩니다. 먼저 준비하는 사람만이 기술을 선도해 갑니다~

프로그래밍언어문법/배열

ch9.배열1 연습문제

파아란기쁨1 2021. 6. 8. 11:11
반응형

1. https://codeup.kr/problem.php?id=1093

2. https://codeup.kr/problem.php?id=1094 

3. https://codeup.kr/problem.php?id=1095 

4. https://codeup.kr/problem.php?id=1402 

5. https://codeup.kr/problem.php?id=1403 

6. https://codeup.kr/problem.php?id=1405 

7. https://codeup.kr/problem.php?id=1409 

8. https://codeup.kr/problem.php?id=1411 

9. https://codeup.kr/problem.php?id=1430 

 

 

 

 

1. 배열의 개념은 아파트와 같은 공동주택의 개념입니다.

단, 배열은 호실이 1호실부터 정해지는 것이 아니라 0호실 부터 주어집니다.

따라서 한 건물에 10개의 집을 만들면 호실은 0호실부터 9호실까지 호수를 붙일 수 있는데 이러한 호실 개념이 배열의 번지 입니다.

그렇다면 이러한 건물을 하나 만들고 10개의 방에 다음과 같이 10명을 0호실부터 9호실까지 입력 받아서 9호실에 있는 사람부터 0호실에 있는 사람까지 출력하세요. 

 

 

 

2. 배열을 만들고 초기값을 입력하는 방법은 int a[5]={1,2,3,4,5} 와 같이 초기화 합니다. 

이때 1번째 데이터는 0번지에 등록되어 있고 2번째 데이터는 1번지에 등록되고 3번째 데이터는 2번지에 등록 되며 4번째 데이터는 3번지에 등록되고 마지막 5번째 데이터는 4번지에 등록 됩니다. 

배열에서 중요한 부분은 0번지부터 시작 한다는 점이며 5개의 배열을 잡으면 5번지까지 있는것이 아니고 4번지 까지 만들어 진다는 점입니다. 

그렇다면 다음과 같이 int a[900]; 을 선언 했을때 마지막 번지는 무엇입니까?

 

더보기

정답) 899

문제풀이) int a[900]; 으로 900개의 방을 만들면 호실은 0번지 부터 899번지까지 900개가 생성이 됩니다.

 

3. 10개의 숫자를 입력 받아서 2번째 7번째 10번째 입력 받은 숫자를 더해서 출력하는 프로그램을 작성하세요.

 

 

4. 100개의 숫자를 입력 받을 수 있는 배열을 만들고 최대 100개 까지 입력을 받다가 입력 받은 수가 999가 입력이 되면 999를 제외한 입력 받은 수를 전체를 출력하세요.

5. 100개의 숫자를 입력 받을 수 있는 배열을 만들고 최대 100개 까지 입력을 받다가 입력 받은 수가 999가 입력이 되면 999를 제외한 입력 받은 수를 마지막 입력 받은 수 부터 처음 입력 받은 수까지 거꾸로 출력 하는 프로그램을 작성하세요.

 

6. 100개의 숫자를 입력 받을 수 있는 배열을 만들고 최대 100개 까지 입력을 받다가 입력 받은 수가 999가 입력이 되면 999를 제외한 입력 받은 수 중에서 최대값을 출력하는 프로그램을 작성하세요.(입력되는 정수는 -999 ~ 998)

 

7. 100개의 숫자를 입력 받을 수 있는 배열을 만들고 최대 100개 까지 입력을 받다가 입력 받은 수가 999가 입력이 되면 999를 제외한 입력 받은 수 중에서 최소값을 출력하는 프로그램을 작성하세요.(입력되는 정수는 -999 ~ 998)

 

8. 10개의 숫자를 입력 받을 배열 변수를 만들고 10개의 배열에 값을 입력 받은 후 데이터를 순서대로 출력 하세요.

9. 최대 100개의 숫자를 입력 받을 배열 변수를 만들고 데이터를 입력 받다가 999가 입력 되면 입력을 종료하고 999를 제외한 입력한 모든 숫자를 출력하세요.

입력 예 : 1 2 3 999

출력 예 : 1 2 3

 

입력 예 : 100 99 98 97 96 95 94 93 92 91 90 89 88 87 86 85 999

출력 예 : 100 99 98 97 96 95 94 93 92 91 90 89 88 87 86 85

 

10. 10개의 숫자를 입력 받을 배열 변수를 만들고 10개의 숫자를 입력 받은 후에 입력 받은 수의 합을 출력하는 프로그램을 작성하세요.

 

 

11. 10개의 숫자를 입력 받을 배열 변수를 만들고 10개의 숫자를 입력 받은 후에 입력 받은 수의 두배를 곱해서 해당 위치에 저장 후에 배열의 위치값을 출력하는 프로그램을 작성하세요.

12. 10개의 숫자를 입력 받을 배열 변수를 만들고 10개의 숫자를 입력 받은 후에 입력 받은 수의 합과 평균을 출력하는 프로그램을 작성하세요.(단 평균은 소수점 한자리 숫자로 출력 합니다.)

13.  10개의 숫자를 입력 받을 배열 변수를 만들고 10개의 숫자를 입력 받은 후에 입력 받은 수에서 5의 배수의 합을 출력하는 프로그램을 작성하세요.

14. 10개의 숫자를 입력 받을 배열 변수를 만들고 10개의 숫자를 입력 받은 후에 입력 받은 수에서 3의 배수의 합과 갯수를 출력하는 프로그램을 작성하세요.

15. 최대 100개의 숫자를 입력 받을 배열 변수를 만들고 데이터를 입력 받다가 999가 입력 되면 입력을 종료하고 999를 제외한 입력한 모든 숫자의 합을 출력하세요.

 

16. 최대 100개의 숫자를 입력 받을 배열 변수를 만들고 데이터를 입력 받다가 999가 입력 되면 입력을 종료하고 999를 제외한 입력한 모든 숫자중 5의 배수의 합을 출력하세요.

 

 

17. 6개의  배열을 {1,2,3,4,5,6} 으로 초기화 하고 1번지 와 2번지 값을 합하여 출력하시오.

입력) 없음

출력) 5

 

더보기

printf("%d",arr[1]+arr[2]);

 

18 6개의 배열을 {1,2,3,4,5,6} 으로 초기화 하고 a,b 를 입력 받아 a번지와 b번지의 값을 합하여 출력하시오.

입력) 1 2 

출력) 5

더보기

printf("%d",arr[a]+arr[b]);

19-0. 10개의 데이터를 입력 받아서 입력 받은 수 중에 가장 작은 수를 출력하시오.( 입력데이터 범위 -1000 ~ 1000)

 

입력예) 1 2 3 4 5 6 7 8 9 -10

출력예)

-10

 

입력예) 999 998 -997 10 11 12 13 14 15 16

출력예)

-997

더보기

 

int minVal = 10000;

for(i=0;i<10;i++)
{
   scanf("%d",&arr[i]);
}

for(i=0;i<10;i++)
{
    
    if(minVal > arr[i]) minVal = arr[i];

}

19-1. 10개의 데이터를 입력 받아서 입력 받은 수 중에 가장 큰수를 출력하시오.( 입력데이터 범위 -1000 ~ 1000)

 

입력예) 1 2 3 4 5 6 7 8 9 -10

출력예)

9

 

입력예) 999 -998 997 10 11 12 13 14 15 16

출력예)

999

더보기
int maxVal = -10000;

for(i=0;i<10;i++)
{
   scanf("%d",&arr[i]);
}

for(i=0;i<10;i++)
{
    
    if(maxVal < arr[i]) maxVal = arr[i];

}

 

 

19-2. 10개의 데이터를 입력 받아서 입력 받은 수 중에 가장 큰수와 가장 작은 수를 출력하시오.( 입력데이터 범위 0 ~ 1000)

 

입력예) 1 2 3 4 5 6 7 8 9 10

출력예)

Max : 10

Min : 1

 

입력예) 999 998 997 10 11 12 13 14 15 16

출력예)

Max : 999

Min : 10

 

더보기

for(i=0;i<10;i++)

{

   scanf("%d",&arr[i]);

}

for(i=0;i<10;i++)

{

    if(maxVal < arr[i]) maxVal = arr[i];

    if(minVal > arr[i]) minVal = arr[i];

}

20. 10개의 데이터를 입력 받아서 홀수번째 입력된 데이터 중에서 가장 큰값, 짝수번째 입력된 데이터 중에서 가장 작은 값을 출력하시오.( 입력데이터 범위 0 ~ 1000)

입력예) 1 2 3 4 5 6 7 8 9 10

출력예)

Max : 9

Min : 2

 

입력예) 2 3 4 5 6 7 8 9 10 11

출력예)

Max : 10

Min : 3

 

입력예) 999 998 997 10 11 12 13 14 15 16

출력예)

Max : 999

Min : 10

더보기

for(i=0;i<10;i++)

{

   scanf("%d",&arr[i]);

}

for(i=0;i<10;i++)

{

    if(i%2==0){

       if(maxVal < arr[i]) maxVal = arr[i];

    }

    else{

       if(minVal > arr[i]) minVal = arr[i];

    }

}

21. 10개의 데이터를 입력 받아서 짝수 중에서 가장 큰값, 홀수 중에서 가장 작은 값을 출력하시오.( 입력데이터 범위 0 ~ 1000)

입력예) 1 2 3 4 5 6 7 8 9 10

출력예)

Max : 10

Min : 1

 

입력예) 2 3 4 5 6 7 8 9 10 11

출력예)

Max : 10

Min : 3

 

입력예) 999 998 997 10 11 12 13 14 15 16

출력예)

Max : 998

Min : 11

 

더보기

for(i=0;i<10;i++)

{

   scanf("%d",&arr[i]);

}

for(i=0;i<10;i++)

{

    if(arr[i]%2==0){

       if(maxVal < arr[i]) maxVal = arr[i];

    }

    else{

       if(minVal > arr[i]) minVal = arr[i];

    }

}

 

22. 10개의 데이터를 입력 받아서 100보다 큰 수 중에서 가장 작은값, 100보다 작거나 같은 수 중에서 가장 큰 값을 출력하시오.( 입력데이터 범위 0 ~ 1000)

입력예) 1 2 3 4 5 6 7 8 9 101

출력예)

Max : 9

Min : 101

 

입력예) 999 998 997 10 11 12 13 14 15 16

출력예)

Max : 16

Min : 997

 

더보기

for(i=0;i<10;i++)

{

   scanf("%d",&arr[i]);

}

for(i=0;i<10;i++)

{

    if(arr[i]>100){       

      if(minVal > arr[i]) minVal = arr[i];

    }

    else{

      if(maxVal < arr[i]) maxVal = arr[i];

    }

}

 

 

23. 10개의 데이터를 입력 받아서 홀수번째 입력된 데이터 의 합계, 짝수번째 입력된 데이터의 합계를 출력하시오.( 입력데이터 범위 0 ~ 1000)

입력예) 1 2 3 4 5 6 7 8 9 10

출력예)

홀수번째 합 : 25

짝수번째 합 : 30

 

입력예) 2 3 4 5 6 7 8 9 10 11

출력예)

홀수번째 합 : 30

짝수번째 합 : 35

 

입력예) 999 998 997 10 11 12 13 14 15 16

출력예)

홀수번째 합 : 2035

짝수번째 합 : 1050

 

더보기

for(i=0;i<10;i++)

{

   scanf("%d",&arr[i]);

}

for(i=0;i<10;i++)

{

    if(i%2==0){

       sum1 += arr[i];

    }

    else{

      sum2 += arr[i];

    }

}

 

24. 10개의 데이터를 입력 받아서 홀수의 합계, 짝수의 합계를 출력하시오.( 입력데이터 범위 0 ~ 1000)

 

입력예) 1 2 3 4 5 6 7 8 9 10

출력예)

홀수합 : 25

짝수합 : 30

 

입력예) 2 3 4 5 6 7 8 9 10 11

출력예)

홀수합 : 35

짝수합 : 30

 

입력예) 999 998 997 10 11 12 13 14 15 16

출력예)

홀수합 : 2035

짝수합 : 1050

 

더보기

for(i=0;i<10;i++)

{

   scanf("%d",&arr[i]);

}

for(i=0;i<10;i++)

{

    if(arr[i]%2==0){

       sum1 += arr[i];

    }

    else{

      sum2 += arr[i];

    }

}

 

25. 5개의 문자를 배열에 입력 받아 입력 받은 순서대로 출력하시오.

입력예) a b c d e

출력예) a b c d e

더보기

char ch[5];

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

for(i=0;i<5;i++) printf("%c ",ch[i]);

26. 5개의 문자를 배열에 입력 받아 거꾸로 출력하시오.

입력예) a b c d e

출력예) e d c b a

더보기

char ch[5];

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

for(i=4;i>=0;i--) printf("%c ",ch[i]);

 

27. 5개의 문자를 배열에 입력 받아 첫번째 문자를 출력하시오.

입력예) a b c d e

출력예) a

더보기

char ch[5];

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

printf("%c ",ch[0]);

28. 5개의 문자를 배열에 입력 받아 세번째 문자를 출력하시오.

입력예) a b c d e

출력예) c

더보기
char ch[5];

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

printf("%c ",ch[2]);

29. 5개의 문자를 배열에 입력 받아 마지막 문자를 출력하시오.

입력예) a b c d e

출력예) e

더보기
char ch[5];

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

printf("%c ",ch[4]);

30. 999 가 들어 올때까지 데이터를 입력 받아서 999를 제외하고 가장 마지막에 들어온 데이터를 출력하시오

입력예) 1 2 3 4 5 6 7 999

출력예) 7

더보기
int a[1000];

for(i=0;;i++) 
{
	scanf("%d",&a[i]);
    if(a[i]==999) break;
}
cnt = i;
printf("%d ",a[cnt-1]);

31. 999 가 들어 올때까지 데이터를 입력 받아서 999를 제외하고 뒤에서 세번째 들어온 데이터를 출력하시오

입력예) 1 2 3 4 5 6 7 999

출력예) 5

더보기

int a[1000];

for(i=0;;i++) 
{
    scanf("%d",&a[i]);
    if(a[i]==999) break;
}
cnt = i;
printf("%d ",a[cnt-4]);

32. 999 가 들어 올때까지 데이터를 입력 받아서 999를 제외하고 첫번째 부터 마지막까지  데이터를 출력하시오

입력예) 1 2 3 4 5 6 7 999

출력예) 1 2 3 4 5 6 7

더보기

int a[1000];

for(i=0;;i++) 
{
    scanf("%d",&a[i]);
    if(a[i]==999) break;
}
cnt = i;
for(i=0;i<cnt;i++) printf("%d ",a[i]);

33. 999 가 들어 올때까지 데이터를 입력 받아서 999를 제외하고 다섯번째 부터 마지막까지  데이터를 출력하시오

입력예) 1 2 3 4 5 6 7 999

출력예) 5 6 7

 

 

더보기

int a[1000];

for(i=0;;i++) 
{
    scanf("%d",&a[i]);
    if(a[i]==999) break;
}
cnt = i;
for(i=4;i<cnt;i++) printf("%d ",a[i]);

34. 999 가 들어 올때까지 데이터를 입력 받아서 999를 제외하고 뒤에서 다섯번째 부터 마지막까지  데이터를 출력하시오

입력예) 1 2 3 4 5 6 7 999

출력예) 3 4 5 6 7

입력예) 1 2 3 4 1 2 3 4 5 6 7 999

출력예) 3 4 5 6 7

더보기

int a[1000];

for(i=0;;i++) 
{
    scanf("%d",&a[i]);
    if(a[i]==999) break;
}
cnt = i;
for(i=cnt-5;i<cnt;i++) printf("%d ",a[i]);

 

35. 26개의 문자배열을 만들어서 'A'~'Z' 까지 배열에 반복문을 이용해서 입력 후 문자를 하나 입력 받아서 그 문자가 몇번지에 있는지 반복문을 이용해서 출력하시오.

 

입력예) A

출력예) 0

입력예) Z

출력예) 25

 

더보기

for(i=0;i<26;i++) st[i]='A'+i;

scanf("%d",&ch);

for(i=0;i<26;i++)

{

   if(st[i]==ch){

       printf("%d",i);

       break;

   }

}

 

 

36. 10개 짜리 배열을 선언후 데이터 10개를 입력 받아 오름차순으로 출력하시오.

 

입력예) 10 2 7 8 6 5 4 3 9 1

출력예) 1 2 3 4 5 6 7 8 9  10

 

입력예) 1 2 3 5 4 6 7 9 8 10

출력예) 1 2 3 4 5 6 7 8 9  10

더보기

int a[10];

for(int i=0;i<10;i++) scanf("%d",&a[i]);

for(int i=0;i<10;i++){

   for(int j=i+1;j<10;j++){

       if(a[i]>a[j]){

          int c = a[i];

          a[i]=a[j];

          a[j]=c;

       }

    }

}

 

for(int i=0;i<10;i++) printf("%d ",a[i]);

36-1. 10개 짜리 문자 배열을 선언후 데이터 10개를 입력 받아 오름차순으로 출력하시오.

 

입력예) J I H B A G F E D C 

출력예) A B C D E F G H I J

더보기

char a[10];

for(int i=0;i<10;i++) scanf(" %c",&a[i]);

for(int i=0;i<10;i++){

   for(int j=i+1;j<10;j++){

       if(a[i]>a[j]){

          int c = a[i];

          a[i]=a[j];

          a[j]=c;

       }

    }

}

for(int i=0;i<10;i++) printf("%c ",a[i]);

37. 100개 짜리 배열을 만든 후 100보다 작은 수 n 을 입력 받고 n개의 수를 입력 받아 출력하시오.

입력 예)

5

1 2 3 4 5

출력예)

1 2 3 4 5

 

더보기

int a[100];

int n;

scanf("%d",&n);

for(int i=0;i<n;i++) scanf("%d",&a[i]);

for(int i=0;i<n;i++) printf("%d",a[i]);

 

38. 100개 짜리 배열을 만든 후 100보다 작은 수 n을 입력 받고 n개의 수를 입력 받아 오름차순으로 정렬하여 출력하시오.

입력예)

5

5 4 1 2 3

출력예)

1 2 3 4 5

 

입력예)

10

10 2 7 8 6 5 4 3 9 1

출력예)

1 2 3 4 5 6 7 8 9  10

더보기

int a[100];

int n;

scanf("%d",&n);

for(int i=0;i<n;i++) scanf("%d",&a[i]);

for(int i=0;i<n;i++){

   for(int j=i+1;j<n;j++){

       if(a[i]>a[j]){

          int c = a[i];

          a[i]=a[j];

          a[j]=c;

       }

    }

}

for(int i=0;i<n;i++) printf("%d",a[i]);

39. 100개 짜리 배열을 만든 후 100보다 작은 수 n을 입력 받고 n개의 수를 입력 받아 내림차순으로 정렬하여 출력하시오.

입력예)

5

1 2 5 4 3

출력예)

5 4 3 2 1

 

입력예)

10

1 2 5 4 3 6 9 10 7 8 

출력예)

10 9 8 7 6 5 4 3 2 1

더보기

int a[100];

int n;

scanf("%d",&n);

for(int i=0;i<n;i++) scanf("%d",&a[i]);

for(int i=0;i<n;i++){

   for(int j=i+1;j<n;j++){

       if(a[i]<a[j]){

          int c = a[i];

          a[i]=a[j];

          a[j]=c;

       }

    }

}

for(int i=0;i<n;i++) printf("%d",a[i]);

 

 

40. 다음과 같이 10개의 정수를 배열에 입력 받고 그 수에서 가장 작은 수를 출력하시오.(입력되는 수의 범위는 1~1000)

 

입력예)

100 101 999 731 10 100 102 777 888 19

 

출력예)

10

 

입력예)

200 301 499 531 40 300 402 577 388 79

 

출력예)

40

int arr[10];

for(int i=0;i<10;i++) { scanf("%d",&arr[i]);};

int minval = 10000;

for(int i=0;i<10;i++) {
	if(minval > arr[i]) minval=arr[i];
}

printf("%d",minval);

 

 

반응형

'프로그래밍언어문법 > 배열' 카테고리의 다른 글

567 : 배열2 - 자가진단4  (0) 2022.08.07
ch10.배열2_연습문제  (0) 2021.07.28
ch10_07.배열2  (0) 2021.01.24
ch10_06.배열2  (0) 2021.01.24
ch10_05.배열2  (0) 2021.01.24