Basics/자기주도 C언어 프로그래밍

[Chapter] 09 배열 I

whereareyoung 2023. 7. 14. 15:13
//1
5개의 정수를 입력받은 후 차례로 출력하는 프로그램을 작성하시오.
입력 예 5 10 9 3 2
출력 예 5 10 9 3 2
 
(소스1)
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
 
int main()
{
int a, b, c, d, e;
scanf("%d %d %d %d %d", &a, &b, &c, &d, &e);
printf("%d %d %d %d %d\n", a, b, c, d, e);
return 0;
}
 
(소스2)
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
 
int main()
{
int a[5];
scanf("%d %d %d %d %d", &a[0], &a[1], &a[2], &a[3], &a[4]);
printf("%d %d %d %d %d\n", a[0], a[1], a[2], a[3], a[4]);
return 0;
}
 
(소스3)
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
 
int main()
{
int a[5], i;
for (i = 0 ; i < 5 ; i++)
{
scanf("%d", &a[i]);
}
for (i = 0 ; i < 5 ; i++)
{
printf("%d ", a[i]);
}
printf("\n");
return 0;
}
 
 
자가진단 1 문자 10개를 저장할 수 있는 배열을 만들고 10개의 문자를 입력받아 입력받은 문자를 이어서 출력하는 프로그램을 작성하시오.
입력 예 A B C D E F G H I J
출력 예 ABCDEFGHIJ
 
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
 
int main()
{
int a[10], i;
for (i = 0 ; i < 10 ; i++)
{
scanf(" %c", &a[i]);
}
for (i = 0 ; i < 10 ; i++)
{
printf("%c", a[i]);
}
printf("\n");
return 0;
}
 
 
 
//2
26개의 문자배열을 선언하고 'A'부터 'Z'까지의 대문자를 차례로 대입 시킨 후 배열의 마지막부터 처음까지 각 문자를 출력하는 프로그램을 작성하시오.
출력 예 Z Y X W V U T S R Q P O N M L K J I H G F E D C B A
 
#include <stdio.h>
 
int main()
{
int c[26];
int i;
 
for (i = 0 ; i < 26 ; i++)
{
c[i] = 'A' + i;
}
 
for (i = 25 ; i >= 0 ; i--)
{
printf("%c ", c[i]);
}
printf("\n");
return 0;
}
 
 
 
자가진단 2 정수 10개를 저장할 수 있는 배열을 만들어서 1부터 10까지를 대입하고 차례대로 출력하는 프로그램을 작성하시오.
출력 예 1 2 3 4 5 6 7 8 9 10
 
#include <stdio.h>
 
int main()
{
int a[10], i;
for (i = 0 ; i < 10 ; i++)
{
a[i] = i + 1;
printf("%d ", a[i]);
}
printf("\n");
return 0;
}
 
 
//3
정수 10개를 입력받은 후 세번째, 다섯 번째와 마지막으로 입력받은 정수를 차례로 출력하는 프로그램을 작성하시오.
입력 예 5 3 9 6 8 4 2 8 10 1
출력 예 9 8 1
 
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
 
int main()
{
int num[10], i;
for (i = 0 ; i < 10 ; i++)
{
scanf("%d", &num[i]);
}
printf("%d %d %d\n", num[2], num[4], num[9]);
return 0;
}
 
 
 
 
자가진단 3 10개의 문자를 입력받아서 첫 번째, 네 번째, 일곱 번째 입력받은 문자를 차례로 출력하는 프로그램을 작성하시오.
입력 예 A B C D E F G H I J
출력 예 A D G
 
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
 
int main()
{
char c[10];
int i;
 
for (i = 0 ; i < 10 ; i++)
{
scanf(" %c", &c[i]);
}
printf("%c %c %c\n", c[0], c[3], c[6]);
return 0;
}
 
 
 
//4
최대 100개까지의 정수를 차례로 입력받다가 0이 입력되면 입력을 중단하고 짝수 번째에 입력된 정수를 모두 출력하는 프로그램을 작성하시오.
입력 예 11 25 3 9 15 6 8 7 12 0
출력 예 25 9 6 7
 
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
 
int main()
{
int num[100], i, count;
 
for (i = 0 ; i < 100 ; i++)
{
scanf("%d", &num[i]);
if (num[i] == 0)
{
break;
}
}
 
count = i;
for (i = 1 ; i < count ; i += 2)
{
printf("%d ", num[i]);
}
printf("\n");
 
return 0;
}
 
 
 
자가진단 4 100개의 정수를 저장할 수 있는 배열을 선언하고 정수를 차례로 입력받다가 0이 입력되면 0을 제외하고 그 때까지 입력된 정수를 가장 나중에 입력된 정수부터 차례대로 출력하는 프로그램을 작성하시오.
입력 예 3 5 10 55 0
출력 예 55 10 5 3
 
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
 
int main()
{
int num[100], i, count;
 
for (i = 0 ; i < 100 ; i++)
{
scanf("%d", &num[i]);
if (num[i] != 0) count = i;
if (num[i] == 0) break;
}
 
for (i = count ; i >= 0 ; i--)
{
printf("%d ", num[i]);
}
printf("\n");
 
return 0;
}
 
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int num[100];
int i, count;
 
for (i = 0; i < 100; i++)
{
scanf("%d", &num[i]);
if (num[i] == 0) break;
}
count = i;
 
for (i = count; i >= 0 ; i--)
{
if (num[i] != 0)
{
printf("%d ", num[i]);
}
}
return 0;
}
 
 
 
//5
연도와 월을 입력받아 해당 월의 날 수를 출력하다가 월이 0이면 종료하는 프로그램을 작성하시오. (월이 잘못 입력되면 "잘못 입력하였습니다." 를 출력한다.)
출력 예
YEAR = 2000
MONTH = 2
입력하신 달의 날 수는 29일입니다.
 
YEAR = 2010
MONTH = 13
잘못 입력하였습니다.
 
YEAR = 0
MONTH = 0
 
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
 
int main()
{
int days[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int year, month;
 
while(1) {
printf("YEAR = ");
scanf("%d", &year);
printf("MONTH = ");
scanf("%d", &month);
 
if (month == 0) break;
else if (month <= 0 || month > 12)
{
printf("잘못 입력하였습니다.\n\n");
}
else
{
if(year % 400 == 0) days[2] = 29;
else if (year % 4 == 0 && year % 100 != 0) days[2] = 29;
else days[2] = 28;
printf("입력하신 달의 날 수는 %d일입니다.\n\n", days[month]);
}
}
return 0;
}
 
 
 
자가진단 5 1반부터 6반까지의 평균점수를 저장한 후, 두 반을 입력받아 두 반 평균점수의 합을 출력하는 프로그램을 작성하시오. 반별 평균점수는 초기값으로 1반부터 차례로 "85.6, 79.5, 83.1, 80.0, 78.2, 75.0"으로 초기화하고 출력은 소수 첫째자리까지 한다.
입력 예 1 3
출력 예 168.7
 
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
 
int main()
{
int a, b;
float avg[6] = {85.6, 79.5, 83.1, 80.0, 78.2, 75.0};
float sum;
 
scanf("%d %d", &a, &b);
sum = avg[a-1] + avg[b-1];
 
printf("%.1f", sum);
return 0;
}
 
 
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
float score[7] = { 0, 85.6, 79.5, 83.1, 80.0, 78.2, 75.0 };
int a, b;
scanf("%d %d", &a, &b);
 
printf("%.1f", score[a] + score[b]);
return 0;
}
 
 
//6
10개의 자연수를 입력받아 그 중 가장 큰 수를 출력하는 프로그램을 작성하시오.
입력 예 5 10 8 55 6 31 12 24 61 2
출력 예 61
 
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
 
int main()
{
int num[10];
int max = 0;
int i;
 
for (i = 0; i < 10; i++)
{
scanf("%d", &num[i]);
}
 
for (i = 0; i < 10; i++)
{
if (max < num[i])
{
max = num[i];
}
}
printf("%d\n", max);
return 0;
}
 
 
 
자가진단 6 10개의 정수를 입력받아 그 중 가장 작은 수를 출력하는 프로그램을 작성하시오. (입력으로 주어지는 정수는 1000을 넘지 않는다.)
입력 예 5 10 8 55 6 31 12 24 61 2
출력 예 2
 
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
 
int main()
{
int n[10], i;
int min = 1000;
 
for (i = 0; i < 10; i++)
{
scanf("%d", &n[i]);
if (min > n[i])
{
min = n[i];
}
 
}
printf("%d\n", min);
return 0;
}
 
 
 
//7
4자리 이하의 10개의 정수를 입력받아 짝수 중 가장 큰 값과 홀수 중 가장 작은 값을 출력하는 프로그램을 작성하시오.
입력 예 -5 10 –8 55 6 –31 12 –24 61 2
출력 예 -31 12
 
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
 
int main()
{
int num[10];
int max = -10000, min = 10000;
int i;
 
for (i = 0; i < 10; i++)
{
scanf("%d", &num[i]);
}
 
for (i = 0; i < 10; i++)
{
if (num[i] % 2 == 0)
{
if (max < num[i])
{
max = num[i];
}
}
else
{
if (min > num[i])
{
min = num[i];
}
}
}
printf("%d %d\n", min, max);
 
return 0;
}
 
 
 
 
자가진단 7 10개의 정수를 입력받아 100 미만의 수 중 가장 큰 수와 100 이상의 수 중 가장 작은 수를 출력하는 프로그램을 작성하시오. (입력되는 정수의 범위는 1이상 10000미만이다. 만약 해당하는 수가 없을 때에는 100을 출력한다.)
입력 예 88 123 659 15 443 1 99 313 105 48
출력 예 99 105
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int num[10], i;
int max = 1, min = 10000;
 
for (i = 0; i < 10; i++)
{
scanf("%d", &num[i]);
if (num[i] < 100)
{
if (max < num[i])
{
max = num[i];
}
}
else
{
if (min > num[i])
{
min = num[i];
}
}
}
 
if (max == 1)
{
printf("%d %d", 100, min);
}
else if (min == 10000)
{
printf("%d %d", max, 100);
}
else
{
printf("%d %d", max, min);
}
return 0;
}
 
 
//8
10명의 컴퓨터 점수를 입력받아 배열에 저장하고 총점과 평균을 구하여 출력하는 프로그램을 작성하시오. (평균은 반올림하여 소수 첫째자리까지 출력한다.)
입력 예 95 100 88 65 76 89 58 93 77 99
출력 예
총점 = 840
평균 = 84.0
 
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
 
int main()
{
int score[10];
int sum = 0;
double avg;
int i;
 
for (i = 0; i < 10; i++)
{
scanf("%d", &score[i]);
}
 
for (i = 0; i < 10; i++)
{
sum += score[i];
}
avg = sum / 10.0;
 
printf("총점 = %d\n", sum);
printf("평균 = %.1f\n", avg);
 
return 0;
}
 
 
자가진단 8 10개의 정수를 입력받아 배열에 저장한 후 짝수 번째 입력된 값의 합과 홀수 번째 입력된 값의 평균을 출력하는 프로그램을 작성하시오. 평균은 반올림하여 소수 첫째자리까지 출력한다.
입력 예 95 100 88 65 76 89 58 93 77 99
출력 예
sum : 446
avg : 78.8
 
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
 
int main()
{
int score[10];
int sum = 0, cnt = 0, odd = 0;
double avg;
int i;
 
for (i = 0; i < 10; i++)
{
scanf("%d", &score[i]);
}
for (i = 1; i < 10 ; i += 2)
{
sum += score[i];
}
for (i = 0; i < 10 ; i+= 2)
{
odd += score[i];
cnt++;
avg = (double)odd / cnt;
}
 
printf("sum : %d\n", sum);
printf("avg : %.1f\n", avg);
 
return 0;
}
 
 
//9
5개의 정수를 {95, 75, 85, 100, 50}로 초기화하고 오름차순으로 정렬하여 출력하는 프로그램을 작성하시오.
출력 예 50 75 85 95 100
 
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
 
int main()
{
int a[5] = {95, 75, 85, 100, 50};
int i, j, tmp;
 
for (i = 0; i < 4; i++)
{
for (j = i + 1; j < 5; j++)
{
if (a[i] > a[j])
{
tmp = a[i];
a[i] = a[j];
a[j] = tmp;
}
}
}
 
for (i = 0; i < 5 ; i++)
{
printf("%d ", a[i]);
}
return 0;
}
 
 
 
 
자가진단 9 10개의 정수를 입력받아 배열에 저장한 후 내림차순으로 정렬하여 출력하시오.
입력 예 95 100 88 65 76 89 58 93 77 99
출력 예 100 99 95 93 89 88 77 76 65 58
 
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
 
int main()
{
int n[10];
int i, j, tmp;
 
for (i = 0; i < 10; i++)
{
scanf("%d", &n[i]);
}
 
for (i = 0; i < 9; i++)
{
for (j = i + 1; j < 10; j++)
{
if (n[i] < n[j])
{
tmp = n[i];
n[i] = n[j];
n[j] = tmp;
}
}
}
 
for (i = 0; i < 10 ; i++)
{
printf("%d ", n[i]);
}
return 0;
}
 
 
 

'Basics > 자기주도 C언어 프로그래밍' 카테고리의 다른 글

[Chapter] 11 함수 I  (0) 2023.07.14
[Chapter] 10 배열 II  (0) 2023.07.14
[Chapter] 08 반복제어문 III  (0) 2023.07.14
[Chapter] 07 반복제어문 II  (0) 2023.07.14
[Chapter] 06 반복제어문 I  (0) 2023.07.14