1. 10개의 문자를 입력받아 마지막으로 입력받은 문자부터 첫 번째 입력받은 문자까지 차례로 출력하는 프로그램을 작성하시오.
입력 예
A E C X Y Z c b z e
출력 예
e z b c Z Y X C E A
#include <stdio.h>
int main(){
int i;
char array[10];
for(i=0;i<10;i++){
scanf(" %c", &array[i]);
}
for(i=9;i>=0;i--){
printf("%c ", array[i]);
}
return 0;
}
2. 5개의 정수를 입력받은 후 첫 번째, 세 번째, 다섯 번째 입력받은 정수의 합을 출력하는 프로그램을 작성하시오.
입력 예
15 20 33 10 9
출력 예
57
#include <stdio.h>
int main(){
int i, sum=0, array[5];
for(i=0;i<5;i++){
scanf("%d", &array[i]);
}
sum = array[0] + array[2] + array[4];
printf("%d", sum);
return 0;
}
※ 첫 번째, 세 번째, 다섯 번째의 합을 구하라고 하였으므로 직접 배열의 0번째, 두 번째, 세 번째 합을 더하여 sum이라는 변수에 저장하였습니다.
3. 10개의 정수를 입력받아 홀수 번째 입력받은 정수의 합과 짝수 번째 입력받은 정수의 합을 출력하는 프로그램을 작성하시오.
입력 예
10 20 25 66 83 7 22 90 1 100
출력 예
odd : 141
even : 283
#include <stdio.h>
int main(){
int i, odd_sum=0, even_sum=0;
int array[10];
for(i=0;i<10;i++){
scanf("%d", &array[i]);
if(i % 2 == 0){
odd_sum += array[i];
}
else
even_sum += array[i];
}
printf("odd : %d\n", odd_sum);
printf("even : %d", even_sum);
return 0;
}
4. 100개의 정수를 입력받을 수 있는 배열을 선언한 후 정수를 차례로 입력받다가 -1이 입력되면 입력을 중단하고 0을 제외한 마지막 세 개의 정수를 출력하는 프로그램을 작성하시오. (입력받은 정수가 3개 미만일 경우에는 모두 출력한다.)
입력 예
30 20 10 60 80 -1
출력 예
10 60 80
#include <stdio.h>
int main(){
int i, cnt, array[100];
for(i=0;i<100;i++){
scanf("%d", &array[i]);
if(array[i] == -1)
break;
}
cnt = i;
if(cnt<3){
for(i=0;i<cnt;i++){
printf("%d ", array[i]); }
}
else{
for(i=cnt-3;i<cnt;i++){
printf("%d ", array[i]);
}
}
return 0;
}
※ if문을 이용하여 입력이 3개 미만인 경우 전부 출력하는 부분을 작성하고
else를 이용하여 입력이 3개 이상일 경우 마지막 세 개를 출력하는 부분을 작성하였습니다.
5. 6명의 몸무게를 입력받아 평균을 출력하는 프로그램을 작성하시오. 출력은 반올림하여 소수 첫째자리까지로 한다.
입력 예
23.2 39.6 66.4 50.0 45.6 48.0
출력 예
45.5
#include <stdio.h>
int main(){
int i;
double sum=0, avg, weight[6];
for(i=0;i<6;i++){
scanf("%lf", &weight[i]);
sum += weight[i];
}
avg = (double)sum / 6;
printf("%.1lf", avg);
return 0;
}
6. 6개의 문자배열을 만들고 {'J', 'U', 'N', 'G', 'O', 'L'}이라고 초기화 한 후 문자 한 개를 입력받아 배열에서의 위치를 출력하는 프로그램을 작성하시오. 첫 번째 위치는 0번이면 배열에 없는 문자가 입력되면 "none"이라는 메세지를 출력한다.
입력 예
L
출력 예
5
입력 예
B
출력 예
none
#include <stdio.h>
int main(){
int i;
char alpha, array[] = "JUNGOL";
scanf(" %c", &alpha);
for(i=0;i<6;i++){
if(array[i] == alpha){
printf("%d", i);
break;
}
else{
if(i==5){
printf("none");
}
}
}
return 0;
}
※ else부분은 배열의 원소와 alpha가 일치 하지 않으면서 i=5(마지막 원소)인 경우 none을 출력하도록 작성하였습니다.
(i=5 전에 일치하는 알파벳이 있다면 출력하고 break)
7. 세 자리 이하 정수 100개를 차례로 입력 받다가 999가 입력되면 프로그램을 종료하고 999를 제외한 그 때까지의 입력된 최대값과 최소값을 출력하는 프로그램을 작성하시오.
입력 예
45 19 123 58 10 -55 16 -1 999
출력 예
max : 123
min : -55
#include <stdio.h>
int main(){
int i, max=-1000, min=1000, array[100];
for(i=0;i<100;i++){
scanf("%d", &array[i]);
if(array[i] == 999)
break;
if(array[i] > max)
max = array[i];
if(array[i] < min)
min = array[i];
}
printf("max : %d\n", max) ;
printf("min : %d", min);
return 0;
}
※ 세자리 이하 정수를 입력받으므로 min의 초기값으로 1000, max의 초기값으로 -1000을 설정하였습니다.
8. 100개 이하의 정수를 입력받다가 0이 입력되면 종료하고 그 때까지 입력된 정수 중 5의 배수의 개수와 합계, 평균을 출력하는 프로그램을 작성하시오. 평균은 소수점 이하 1자리까지 출력한다.
입력 예
35 10 23 100 64 51 5 0
출력 예
Multiples of 5 : 4
sum : 150
avg : 37.5
#include <stdio.h>
int main(){
int i, sum=0, cnt=0, array[100];
double avg;
for(i=0;i<100;i++){
scanf("%d", &array[i]);
if(array[i]==0)
break;
if(array[i] % 5 == 0){
cnt++;
sum += array[i];
}
}
avg = (double)sum / cnt;
printf("Multiples of 5 : %d\n", cnt);
printf("sum : %d\n", sum);
printf("avg : %.1lf", avg);
return 0;
}
9. 100개 이하의 정수를 입력받다가 0이 입력되면 0을 제외하고 그 때까지 입력 받은 개수를 출력한 후 입력 받은 정수를 차례대로 출력하되 그 수가 홀수이면 2배한 값을, 짝수인 경우에는 2로 나눈 몫을 출력하는 프로그램을 작성하시오.
입력 예
8 10 5 15 100 0
출력 예
5
4 5 10 30 50
#include <stdio.h>
int main(){
int i, cnt=0, array[100];
for(i=0;i<100;i++){
scanf("%d", &array[i]);
if(array[i] == 0)
break;
cnt++;
}
printf("%d\n", cnt);
for(i=0;i<cnt;i++){
if(array[i] % 2 == 0){
printf("%d ", array[i] / 2);
}
else
printf("%d ", array[i] * 2);
}
return 0;
}
10. 20 이하의 정수 n을 입력받고 n명의 점수를 입력받아 높은 점수부터 차례로 출력하는 프로그램을 작성하시오.
입력 예
5
35 10 35 100 64
출력 예
100
64
35
35
10
#include <stdio.h>
int main(){
int i, j, n, temp, array[20];
scanf("%d", &n);
for(i=0;i<n;i++){
scanf("%d", &array[i]);
}
for(i=0;i<n;i++){
for(j=0;j<n-i-1;j++){
if(array[j] < array[j+1]){
temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
}
}
}
for(i=0;i<n;i++){
printf("%d\n", array[i]);
}
return 0;
}
'C언어(자기주도C언어프로그래밍) > Chapter09. 배열1' 카테고리의 다른 글
자기주도C언어프로그래밍 Chapter09. 배열1 - 연습문제&자가진단 (2) | 2023.02.27 |
---|