출력하고자 하는 다이아몬드의 변의 길이 N 입력) 3 출력) * ******** *** * #include int main() { int n; printf("Input N: "); scanf("%d", &n); int lines = 2 * n - 1; for (int i = 0; i < lines; i++) { int blanks = lines - n - ((i < n) ? i : (lines - i - 1)); int stars = lines - 2 * blanks; for (int j = 0; j < blanks; j++) { printf(" "); } for (int j = 0; j < stars; j++) { printf("*"); } printf("\n"); } return 0; }
5개의 문자열을 받아 긴 문자열부터 출력 입력) 00000 00 000 0 0000 출력) 0 00 000 0000 00000 #include #include #include int compare(const void *, const void *); // 비교 함수 선언 int main() { unsigned int input_length = 5; char **input = (char **) malloc(sizeof(char *) * input_length); // 문자열 저장 포인터 for (unsigned int i = 0; i < input_length; i++) { *(input + i) = (char *) malloc(sizeof(char) * 10); // 9개의 문자를 받을 수 있는 문자열 g..
8.다음과 같이 크기가 26인 알파벳 대문자 A부터 Z를 저장한 다음,사용자로부터 하나의 문자를 입력받아 그 문자를 제외한 나머지 문자를 차례대로 5개씩 5줄로 출력하는 프로그램을 작성하세요. 입력된 문자가 A부터 Z사이의 알파벳 대문자가 아닐 경우에는 메세지를 출력합니다. 입력) 제외할 문자를 입력하세요 : F 출력) A B C D E G H I J K L M N O P Q R S T U V W X Y Z 입력) 제외할 문자를 입력하세요 : a 출력) A~Z 사이의 문자가 아닙니다. #include int main() { char alphabet[26]; for (char c = 65; c 90) { printf("A~Z 사이의 문자가 아닙니다.\n"); return -1; } int is_exclud..
학생들의 답안을 채점하는 프로그램을 작성하세요. 다음과 같은 2차원 배열이 학생들이 제출한 답이며, 모든 문제는 객관식으로 정답이 1~4입니다. 5명의 학생이 각각 10문제에 대한 답을 다음과 같이 제출했습니다. 문제의 정답은 프로그램 실행 시에 주어집니다. 학생 1 | 1 3 2 4 3 1 4 2 2 1 학생 2 | 3 2 4 2 2 1 1 3 4 1 학생 3 | 2 4 3 2 1 2 1 3 3 4 학생 4 | 2 3 3 1 1 3 2 2 4 4 학생 5 | 3 1 1 2 4 1 2 3 1 3 입력) 1번 문제의 정답을 입력하세요 : 3 2번 문제의 정답을 입력하세요 : 2 3번 문제의 정답을 입력하세요 : 3 4번 문제의 정답을 입력하세요 : 2 5번 문제의 정답을 입력하세요 : 4 6번 문제의 정답..
배열 a={1,2,3,4,5,6,7,8,9,10}을 생성하며, 사용자로부터 하나의 수를 입력받아 그 수만큼 배열의 값을 왼쪽으로 이동하고 오른쪽에는 0을 채우는 프로그램을 작성하세요 입력) 이동을 원하는 숫자를 입력하세요 : 5 출력) 6 7 8 9 10 0 0 0 0 0 #include int main() { int array[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; int shifted[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; int to_shift = 0; scanf("%d", &to_shift); for (int i = 0; i < 10 -to_shift; i++) shifted[i] = array[to_shift + i]; for (int i = ..
프로그래밍 언어 관련 수업을 듣다 보면 재귀 호출에 대해서 배우게 된다. 어떤 알고리즘을 해결하면서 재귀 함수는 꽤 중요한 역할을 가지고 있는데, 피보나치 수열의 항이나 수의 분할 정도를 하는 경우가 많다. unsigned long long stupid(unsigned long long n) { return (n == 1 || n == 2) ? n - 1 : stupid(n - 1) + stupid(n - 2); } 1이나 2일때는 0, 1을 반환하고 그렇지 않을때는 이전 항과 그 전 항의 합을 반환한다. 이때 이전 항을 다시 구하게 되는 것이다. 아주 간단한 모습을 하고 있으면서 원하는 결과를 뱉기는 한다. 10정도를 넣으면 34라는 올바른 결과를 반환한다. 하지만 n에 100을 넣으면? 위의 코드는 ..
사실 꽤나 민감한 내용이다. 이전에 KLDP와 같은 커뮤니티에서는 이걸로 열찬 토론하는 장면도 목격할 수 있었다. 어떤 경우에서는 Java의 모든 인스턴스가 포인터라느니, 자료형에 대해서는 call by value가 된다느니 일이 많았다. 조금 엄밀한 방향에서 Java의 포인터에 대해 생각해보도록 하자. 포인터는 특정 개체의 주솟값을 나타내고, 주소를 이용하여 역참조를 할 수 있어야한다. 먼저 주소를 가져올 수 있는지 알아보자. Java에서 Instance의 주솟값을 가져오는 방법부터 순탄치 않다. 어쩌면 당연하게도 Unsafe 클래스의 기능을 사용하여야 한다. JDK 9부터는 상당히 까다로워졌는데, 번거로운 고로 JDK 8의 sun.misc.Unsafe를 사용하도록 한다. Deprecated 판정된 방..
- Total
- Today
- Yesterday
- CM10.2
- vector
- OOP
- f320s
- rule_of_five
- CM11
- rule_of_three
- g2 korea
- PipelineContext
- f320k
- dokdo 4.0.3
- Kotlin
- nodeal
- c++ 상속
- 포인터
- Java
- C++ 업캐스팅
- G2
- d802
- dokdo project
- c++ struct
- inline class
- 객체지향
- C++
- dokdo-project
- LG
- cyanogenmod
- C
- linaro
- c++11
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |