전체76 [열혈 C] 도전! 프로그래밍3 - 달팽이 배열 도전 2 달팽이 배열 달팽이 배열을 만들어서 이를 출력하는 프로그램을 작성하고자 한다. 여기서 말하는 달팽이 배열은 다음과 같다. 1 2 3 4 12 13 14 5 11 16 15 6 10 9 8 7 최좌상단칸 부터 시작해서 시계방향으로 수를 채워나가는 배열이다. 사용자로부터 숫자 n을 입력받아서 n x n 크기의 달팽이 배열을 출력해주는 프로그램을 작성해보자. 풀이 과정 이중 반복문의 형태로 큰 반복문 속에 한바퀴를 회전하기 위한 반복문을 넣어서 구현해야겠다고 생각했습니다. 그리고 n의 제곱이 되는 수가 입력되면 입력을 종료하고 해당 범위의 배열을 출력합니다. 코드 #include int main(void) { int n, x = 0, y = 0, num = 1, rpt = 0; int arr[100].. 2023. 10. 19. [백준] 2231번 분해합 - C언어 C언어 공부를 하다 보니 이제 낮은 레벨의 백준은 풀 수 있겠다 싶어서 블로그에 기록하려 합니다. 제가 풀다가 고전했던 문제들만 쓰겠습니다. 문제이름을 누르면 백준문제로 이동합니다. 분해합 어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자릿수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이 된다. 따라서 245는 256의 생성자가 된다. 물론, 어떤 자연수의 경우에는 생성자가 없을 수도 있다. 반대로, 생성자가 여러 개인 자연수도 있을 수 있다. 자연수 N이 주어졌을 때, N의 가장 작은 생성자를 구해내는 프로그램을 작성하시오. 입력첫째 줄에 자연수 N(1 ≤ N ≤ 1,000,.. 2023. 10. 13. [열혈 C] 도전! 프로그래밍1 - 유클리드 호제법과 덧셈조합 오늘은 열혈 C의 도전! 프로그래밍 1 파트를 풀어보겠습니다. 교재에 답이 없기 때문에 제가 틀렸을 수도 있습니다. 이점 유의하고 봐주시기 바랍니다. 도전 1부터 도전 8까지 있는데 제가 풀면서 고민했던 문제만 풀이해 보겠습니다! 도전 3 두 개의 정수를 입력 받아서 최대 공약수(GCD)를 구하는 프로그램을 작성 해 보자. 이 문제는 풀이가 두가지 입니다. 첫 번째 방법인 단순하게 후보들을 전부 나눠보는 방법부터 설명하겠습니다. #include int main(void) { int min, max; int a, b; int gcd=1; scanf_s("%d %d", &a, &b); min = a > b ? b : a; //작은 수로 초기화 max = a > b ? a : b; //큰 수로 초기화 for .. 2023. 10. 9. [열혈 C] printf함수에서 서식문자의 다양한 활용 서식문자의 종류와 그 의미 printf 함수에서 쓰이는 서식문자의 종류를 알아보자. 서식문자 출력 대상 출력 형태 %d char, short, int 부호 있는 10진수 정수 %o unsigned int 부호 없는 8진수 정수 %x unsigned int 부호 없는 16진수 정수 %s char* 문자열 %#o 와 %#x %o 와 %x 는 서식문자 사이에 #을 넣게 되면 해당 진수임을 드러내며 출력이 된다. #include int main(void) { int a = 17; printf("10진수 : %d\t8진수 : %#o\t16진수 : %#x", a, a, a); return 0; } 10진수 : 17 8진수 : 021 16진수 : 0x11 위와 같이 8진수 앞에는 '0'이 붙고 16진수 앞에는 '0x.. 2023. 10. 5. [열혈 C] 논리 연산자와 콤마 연산자 관계 연산자 연산자 연산자의 기능 예) n1 > n2 n1이 n2보다 큰가? == 예) n1 == n2 n1과 n2가 같은가? != 예) n1 != n2 n1과 n2가 다른가? = n2 n1이 n2보다 같거나 큰가? 위의 관계 연산자들은 조건을 만족하면 1을 만족하지 않으면 0을 반환한다. 여기서 1은 참(true)을 뜻하고 0은 거짓(false)을 뜻한다. 논리 연산자 논리 연산자 연산자의 기능 ! 예) !A A가 참이면 거짓, A가 거짓이면 참을 반환(논리 NOT) && 예) A && B A와 B 모두 참이면 연산결과로 참을 반환(논리 AND) || 예) A || B A와 B 둘 중 하나라도 참이면 연산결과로 참을 반환(논리 OR) 논리 연산자 !의 예제를 보자. #include int main(vo.. 2023. 10. 3. [열혈 C] 단항 연산자와 증가, 감소 연산자 부호연산의 의미를 갖는 + 연산자와 - 연산자 + 연산자와 - 연산자는 이항 연산자로서 덧셈과 뺄셈을 의미하지만, 피연산자가 하나인 단항 연산자로서 부호를 뜻하기도 한다. 이는 +3, -7과 같이 숫자 앞에 붙는 부호를 뜻하는 것이므로 생소하지 않을 것이다. 그럼 이와 관련해서 다음 예제를 보자 #include int main(void) { int num1 = +2; int num2 = -4; num1 = -num1; //num1의 부호를 바꾸어 주기 위해 -를 사용했다. printf("num1: %d \n", num1); num2 = -num2; //num2의 부호를 바꾸어 주기 위해 -를 사용했다. printf("num2: %d \n", num2); return 0; } num1: -2 num2: 4.. 2023. 10. 3. 이전 1 ··· 8 9 10 11 12 13 다음