-
JUNGOL...21일지 2020. 11. 14. 11:41
Language_Code/배열2/자가진단1
문제
영문 대문자를 입력받다가 대문자 이외의 문자가 입력되면 입력을 중단하고
영문 대문자들에 대하여 1번 이상 입력된 각 문자와 그 문자의 개수를 사전 순으로 출력하는 프로그램을 작성하시오.
입력 예
A B C F F F B Z !
출력 예
A : 1
B : 2
C : 1
F : 3
Z : 1
Hint!
C, C++ 사용자 힌트입니다.
'A'는 0번 'B'는 1번 'C'는 2번 … 'Z'는 25번에 count 한다.
'A'는 메모리에 65로 저장된다.
따라서 입력받은 문자에서 65 또는 'A'를 빼면 해당문자의 개수를 저장할 번호가 된다.
('B'-65=1 또는 'B'-'A'=1) 1을 다시 'B'로 바꾸어 출력하려면 char(1+65) 또는 char(1+'A')를 출력하면 된다.
BasicArray201.h
#include <iostream>
BasicArray201.cpp
void BasicArray201::Code() { int arr[26]{}; char ch; while (true) { std::cin >> ch; if ('Z' < ch || ch < 'A') { break; } arr[ch - 'A']++; } for (int i = 0; i < 26; i++) { if (arr[i] > 0) { std::cout << static_cast<char>('A' + i) << " : " << arr[i] << '\n'; } } }
Language_Code/배열2/자가진단2
문제
100 미만의 양의 정수들이 주어진다.
입력받다가 0 이 입력되면 마지막에 입력된 0 을 제외하고
그 때까지 입력된 정수의 십의 자리 숫자가 각각 몇 개인지
작은 수부터 출력하는 프로그램을 작성하시오. (0개인 숫자는 출력하지 않는다.)
입력 예
10 55 3 63 85 61 85 0
출력 예
0 : 1
1 : 1
5 : 1
6 : 2
8 : 2
Hint!
10의 자리 숫자는 10으로 나눈 몫이다.
BasicArray202.h
#include <iostream>
BasicArray202.cpp
void BasicArray202::Code() { int arr[10]{}; int num; while (true) { std::cin >> num; if (num == 0) { break; } arr[num / 10]++; } for (int i = 0; i < 10; i++) { if (arr[i] > 0) { std::cout << i << " : " << arr[i] << '\n'; } } }
Language_Code/배열2/자가진단3
문제
100 이하의 자연수를 입력받아 첫 번째 항은 100으로 두 번째 항은 입력받은 수로 초기화하고 다음 항부터는 전전항에서 전항을 뺀 수로 채워나가는 수열을 작성하여 그 수가 음수가 나올 때까지 출력하는 프로그램을 작성하시오.
입력 예
62
출력 예
100 62 38 24 14 10 4 6 -2
BasicArray203.h
#include <iostream>
BasicArray203.cpp
void BasicArray203::Code() { int num; std::cin >> num; int arr[100]{ 100, num }; for (int i = 2; i < 100; i++) { arr[i] = arr[i - 2] - arr[i - 1]; if (arr[i] < 0) { break; } } for (int i = 0; i < 100; i++) { std::cout << arr[i] << ' '; if (arr[i] < 0) { break; } } }
Language_Code/배열2/자가진단4
문제
3행 5열의 배열을 아래 출력 예와 같이 초기화 한 후 출력하는 프로그램을 작성하시오.
숫자사이의 공백은 3칸으로하고 각 숫자는 2칸으로 오른쪽에 맞추어 출력한다. 예, "%2d "
출력 예
5 8 10 6 4
11 20 1 13 2
7 9 14 22 3
BasicArray204.h
#include <iostream> #include <iomanip>
BasicArray204.cpp
void BasicArray204::Code() { int arr[3][5]{ 5, 8, 10, 6, 4, 11, 20, 1, 13, 2, 7, 9, 14, 22, 3 }; for (int i = 0; i < 3; i++) { for (int j = 0; j < 5; j++) { std::cout << std::setw(2) << arr[i][j] << " "; } std::cout << '\n'; } }
Language_Code/배열2/자가진단5
문제
2행 4열의 배열 두 개를 만들어서 입력을 받고 두 배열의 곱을 구하여 출력하는 프로그램을 작성하시오.
입력 예
first array
1 2 3 4
5 6 7 8
second array
1 4 7 8
3 6 9 8
출력 예
1 8 21 32
15 36 63 64
BasicArray205.h
#include <iostream>
BasicArray205.cpp
void BasicArray205::Code() { int arr1[2][4]; int arr2[2][4]; std::cout << "first array\n"; for (int i = 0; i < 2; i++) { for (int j = 0; j < 4; j++) { std::cin >> arr1[i][j]; } } std::cout << "second array\n"; for (int i = 0; i < 2; i++) { for (int j = 0; j < 4; j++) { std::cin >> arr2[i][j]; } } int result[2][4]; for (int i = 0; i < 2; i++) { for (int j = 0; j < 4; j++) { result[i][j] = arr1[i][j] * arr2[i][j]; } } for (int i = 0; i < 2; i++) { for (int j = 0; j < 4; j++) { std::cout << result[i][j] << ' '; } std::cout << '\n'; } }
Language_Code/배열2/자가진단6
문제
5명 학생의 국어 영어 수학 과학 4과목의 점수를 입력 받아서 각 개인별로 평균이 80 이상이면“합격” 그렇지 않으면“불합격”을 출력하고 합격한 사람의 수를 출력하는 프로그램을 작성하시오.
입력 예
85 67 95 65
80 95 86 56
100 98 67 86
95 76 84 65
67 86 90 76
출력 예
fail
fail
pass
pass
fail
Successful : 2
BasicArray206.h
#include <iostream>
BasicArray206.cpp
void BasicArray206::Code() { int score[5][4]; for (int i = 0; i < 5; i++) { for (int j = 0; j < 4; j++) { std::cin >> score[i][j]; } } int avg[5]{}; for (int i = 0; i < 5; i++) { for (int j = 0; j < 4; j++) { avg[i] += score[i][j]; } avg[i] /= 4; } int passCount{ 0 }; for (int i = 0; i < 5; i++) { if (avg[i] >= 80) { std::cout << "pass\n"; passCount++; } else { std::cout << "fail\n"; } } std::cout << "Successful : " << passCount; }
Language_Code/배열2/자가진단7
문제
배열을 만들어서 아래와 같이 저장한 후 출력하는 프로그램을 작성하시오. 규칙은 첫 번째 행은 모두 1로 초기화 하고 다음 행부터는 바로 위의 값과 바로 왼쪽의 값을 더한 것이다.
출력 예
1 1 1 1 1
1 2 3 4 5
1 3 6 10 15
1 4 10 20 35
1 5 15 35 70
BasicArray207.h
#include <iostream>
BasicArray207.cpp
void BasicArray207::Code() { int arr[5][5]; for (int i = 0; i < 5; i++) { std::fill_n(arr[i], 5, 1); } for (int i = 1; i < 5; i++) { for (int j = 1; j < 5; j++) { arr[i][j] = arr[i - 1][j] + arr[i][j - 1]; } } for (int i = 0; i < 5; i++) { for (int j = 0; j < 5; j++) { std::cout << arr[i][j] << ' '; } std::cout << '\n'; } }
NadanKim/CodingTest_JUNGOL: JUNGOL 코딩 테스트를 위한 저장소 (github.com)