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 |