-
JUNGOL...22일지 2020. 11. 17. 19:38
Language_Code/배열2/형성평가1
문제
승지는 주사위 놀이를 하다가 주사위를 10번 던져서 각 숫자가 몇 번씩 나왔는지 알아보려고 한다. 한번 던질 때마다 나온 주사위의 숫자를 입력받아서 각 숫자가 몇 번씩 나왔는지 출력하는 프로그램을 작성하시오.
입력 예
5 6 3 4 5 5 2 2 4 6
출력 예
1 : 0
2 : 2
3 : 1
4 : 2
5 : 3
6 : 2
FormativeArray201.h
#include <iostream>
FormativeArray201.cpp
void FormativeArray201::Code() { int dice[6]{}; int var; for (int i = 0; i < 10; i++) { std::cin >> var; dice[var - 1]++; } for (int i = 0; i < 6; i++) { std::cout << i + 1 << " : " << dice[i] << '\n'; } }
Language_Code/배열2/형성평가2
문제
학생들의 점수를 입력을 받다가 0이 입력되면 그 때까지 입력받은 점수를 10점 단위로 구분하여 점수대별 학생 수를 출력하는 프로그램을 작성하시오. (1명도 없는 점수는 출력하지 않는다.)
학생은 최대 100명이하이다.
입력 예
63 80 95 100 46 64 88 0
출력 예
100 : 1 person
90 : 1 person
80 : 2 person
60 : 2 person
40 : 1 person
Hint!
10으로 나눈 몫을 기준으로 배열에 넣은 후 출력한다.
FormativeArray202.h
#include <iostream>
FormativeArray202.cpp
void FormativeArray202::Code() { int score[11]{}; int var; while(true) { std::cin >> var; if (var == 0) { break; } score[var / 10]++; } for (int i = 10; i >= 0; i--) { if (score[i] > 0) { std::cout << i * 10 << " : " << score[i] << " person\n"; } } }
Language_Code/배열2/형성평가3
문제
10 미만의 자연수 두 개를 입력받아서
첫 번째 항과 두 번째 항을 입력받은 수로 초기화 시킨 후
세 번째 항부터는 전전항과 전항의 합을 구하여
그 합의 1의 자리로 채워서 차례로 10개를 출력하는 프로그램을 작성하시오.
입력 예
3 5
출력 예
3 5 8 3 1 4 5 9 4 3
FormativeArray203.h
#include <iostream>
FormativeArray203.cpp
void FormativeArray203::Code() { int num1, num2; std::cin >> num1 >> num2; int arr[10]{ num1, num2 }; for (int i = 2; i < 10; i++) { arr[i] = (arr[i - 2] + arr[i - 1]) % 10; } for (int i = 0; i < 10; i++) { std::cout << arr[i] << ' '; } }
Language_Code/배열2/형성평가4
문제
4행 3열의 배열을 선언하고 아래의 값으로 초기화 한 후 차례대로 출력한 후 배열의 모든 값을 더한 결과를 출력하는 프로그램을 작성하시오.
{{3, 5, 9}, {2, 11, 5}, {8, 30, 10}, {22, 5, 1}}
출력 예
3 5 9
2 11 5
8 30 10
22 5 1
111
FormativeArray204.h
#include <iostream>
FormativeArray204.cpp
void FormativeArray204::Code() { int arr[4][3]{ 3, 5, 9, 2, 11, 5, 8, 30, 10, 22, 5, 1 }; int sum{ 0 }; for (int i = 0; i < 4; i++) { for (int j = 0; j < 3; j++) { sum += arr[i][j]; std::cout << arr[i][j] << ' '; } std::cout << '\n'; } std::cout << sum; }
Language_Code/배열2/형성평가5
문제
호석이네 학교는 6학년이 네 반이 있는데 각 반의 대표를 세 명씩 선발하여 제기차기 시합을 하였다.
반별로 세 명이 제기를 찬 개수를 입력받아 각 반별로 제기를 찬 개수의 합계를 출력하는 프로그램을 작성하시오.
(반드시 배열을 이용하고 입력후에 출력하는 방식으로 하세요.)
입력 예
1class? 15 2 35
2class? 33 1 6
3class? 5 10 19
4class? 1 8 55
출력 예
1class : 52
2class : 40
3class : 34
4class : 64
FormativeArray205.h
#include <iostream>
FormativeArray205.cpp
void FormativeArray205::Code() { int classScore[4][3]; for (int i = 0; i < 4; i++) { std::cout << i + 1 << "class? "; std::cin >> classScore[i][0] >> classScore[i][1] >> classScore[i][2]; } for (int i = 0; i < 4; i++) { int sum{ classScore[i][0] + classScore[i][1] + classScore[i][2] }; std::cout << i + 1 << "class : " << sum << '\n'; } }
Language_Code/배열2/형성평가6
문제
예제를 보고 적당한 배열을 선언한 후 1행의 1열과 3열 5열을 각각 1로 초기화하고 나머지는 모두 0으로 초기화 한 후 2행부터는 바로 위행의 왼쪽과 오른쪽의 값을 더하여 채운 후 출력하는 프로그램을 작성하시오.
출력 예
1 0 1 0 1
0 2 0 2 0
2 0 4 0 2
0 6 0 6 0
6 0 12 0 6
FormativeArray206.h
#include <iostream>
FormativeArray206.cpp
void FormativeArray206::Code() { int arr[5][5]{ 1, 0, 1, 0, 1, }; for (int i = 1; i < 5; i++) { // 왼쪽 끝 값 보정 arr[i][0] = arr[i - 1][1]; // 오른쪽 끝 값 보정 arr[i][4] = arr[i - 1][3]; for (int j = 1; j < 4; j++) { arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j + 1]; } } for (int i = 0; i < 5; i++) { for (int j = 0; j < 5; j++) { std::cout << arr[i][j] << ' '; } std::cout << '\n'; } }
Language_Code/배열2/형성평가7
문제
2행 3열 배열을 두 개 선언하여 각각의 값을 입력 받은 후 두 배열의 같은 위치끼리 곱하여 새로운 배열에 저장한 후 출력하는 프로그램을 작성하시오.
입력 예
first array
3 6 9
8 5 2
second array
9 8 7
6 5 4
출력 예
27 48 63
48 25 8
FormativeArray207.h
#include <iostream>
FormativeArray207.cpp
void FormativeArray207::Code() { int arr1[2][3]; int arr2[2][3]; std::cout << "first array\n"; for (int i = 0; i < 2; i++) { for (int j = 0; j < 3; j++) { std::cin >> arr1[i][j]; } } std::cout << "second array\n"; for (int i = 0; i < 2; i++) { for (int j = 0; j < 3; j++) { std::cin >> arr2[i][j]; } } int result[2][3]; for (int i = 0; i < 2; i++) { for (int j = 0; j < 3; j++) { result[i][j] = arr1[i][j] * arr2[i][j]; } } for (int i = 0; i < 2; i++) { for (int j = 0; j < 3; j++) { std::cout << result[i][j] << ' '; } std::cout << '\n'; } }
Language_Code/배열2/형성평가8
문제
4행 2열의 배열을 입력받아 가로평균과 세로평균 그리고 전체평균을 출력하는 프로그램을 작성하시오. (소수점 이하는 버림 한다.)
입력 예
16 27
39 100
19 88
61 20
출력 예
21 69 53 40
33 58
46
FormativeArray208.h
#include <iostream>
FormativeArray208.cpp
void FormativeArray208::Code() { int arr[4][2]; for (int i = 0; i < 4; i++) { for (int j = 0; j < 2; j++) { std::cin >> arr[i][j]; } } for (int i = 0; i < 4; i++) { int sum{ 0 }; for (int j = 0; j < 2; j++) { sum += arr[i][j]; } int avg{ sum / 2 }; std::cout << avg << ' '; } std::cout << '\n'; for (int i = 0; i < 2; i++) { int sum{ 0 }; for (int j = 0; j < 4; j++) { sum += arr[j][i]; } int avg{ sum / 4 }; std::cout << avg << ' '; } std::cout << '\n'; int sum{ 0 }; for (int i = 0; i < 4; i++) { for (int j = 0; j < 2; j++) { sum += arr[i][j]; } } int avg{ sum / 8 }; std::cout << avg; }
Language_Code/배열2/형성평가9
문제
행의 크기를 입력받아 파스칼 삼각형을 작성하여 마지막 행부터 첫 번째 행까지 차례로 출력하는 프로그램을 작성하시오. 행의 크기는 최대 10이다.
입력 예
6
출력 예
1 5 10 10 5 1
1 4 6 4 1
1 3 3 1
1 2 1
1 1
1
FormativeArray209.h
#include <iostream>
FormativeArray209.cpp
void FormativeArray209::Code() { int arr[10][10]{}; for (int i = 0; i < 10; i++) { arr[i][0] = 1; } int var; std::cin >> var; for (int i = var - 2; i >= 0; i--) { for (int j = 1; j < var - i; j++) { arr[i][j] = arr[i + 1][j - 1] + arr[i + 1][j]; } } for (int i = 0; i < var; i++) { for (int j = 0; j < var - i; j++) { std::cout << arr[i][j] << ' '; } std::cout << '\n'; } }
Language_Code/배열2/형성평가10
문제
3행 5열의 2차원 문자배열 형태의 대문자들을 입력 받은 후 소문자로 바꾸어서 공백으로 구분하여 출력하는 프로그램을 작성하시오.
입력 예
A B C D E
F G H I J
K L M N O
출력 예
a b c d e
f g h i j
k l m n o
Hint!
대문자 A는 65로 저장되고 소문자 a는 97로 저장된다. 즉 소문자는 대문자보다 32가 더 크다.
FormativeArray210.h
#include <iostream>
FormativeArray210.cpp
void FormativeArray210::Code() { char arr[3][5]; for (int i = 0; i < 3; i++) { for (int j = 0; j < 5; j++) { std::cin >> arr[i][j]; } } for (int i = 0; i < 3; i++) { for (int j = 0; j < 5; j++) { arr[i][j] = arr[i][j] - 'A' + 'a'; } } for (int i = 0; i < 3; i++) { for (int j = 0; j < 5; j++) { std::cout << arr[i][j] << ' '; } std::cout << '\n'; } }
NadanKim/CodingTest_JUNGOL: JUNGOL 코딩 테스트를 위한 저장소 (github.com)