분류 전체보기 20

[C문제은행] 소인수분해

문제 정수를 소수의 곱만으로 표현하는 것을 소인수분해라고 한다. 소인수분해 프로그램을 작성해보자! 👉 소인수분해 과정 예시 (숫자 12를 소인수분해하는 과정) 먼저, 숫자 12를 가장 작은 소수인 2로 나눈다. 12은 2로 나누어떨어지므로, 2는 12의 소인수이다. → 2 12을 2로 나눈 값 6을 다시 2로 나눈다. 6은 2로 나누어떨어지므로, 2는 6의 소인수이다. → 2 6을 2로 나눈 값 3을 다시 2로 나눈다. 3은 2로 나누어떨어지지 않는다. 3을 2 다음으로 작은 소수인 3으로 나눈다. 3은 3으로 나누어떨어지므로 3은 소인수이다. →3 3을 3으로 나눈 값은 1인데, 나누는 수 3이 나눠지는 수 1보다 크기 때문에 계산을 종료한다. 1. 소인수분해 함수를 선언한다. 2. main 함수를 선..

[C기초문법] 반복문을 빠져나오는 break, continue

반복문을 배웠다면 반복문을 빠져 나올 때 사용하는 것도 배워야겠죠? 오늘은 break문과 continue문 이 두가지에 대해서 배워보아요! break break문은 앞서 말했듯이 반복문을 빠져나올 때 사용합니다. break; 이렇게만 입력해주면 됩니다! 정말 간단하죠? int main(void) { .... while(1) { if(x>20) break; //if문이 아닌 while문 탈출 .... } .... } break문이 실행되면 break문을 가장 가까이서 감싸고 있는 반복문 하나를 빠져 나오게 됩니다. 하나 주의해야할 점은 break문이 if문과 함께 쓰였다고 해서 if문을 빠져 나오는 것으로 오해하면 안됩니다!!! break문은 오직 반복문과 함께 쓰인다는 점 반드시 기억해주세요! conti..

[C기초문법] 조건문 (if, if else, if ... else if... else)

저번 글에서는 반복문에 다루었는데 이번에는 "조건문"에 대해서 글을 적어보려 합니다 (반말 뭔가 불편해서 존댓말을 쓰기로 결정ㅎㅎㅎ) 조건문이라.... 이름만 봐도 어떤 것인지 벌써 감이 오는 분들이 많을 것 같은데요ㅎㅎ 바로 설명 들어가겠습니다~ 조건문은 예상 했던 바와 같이 정해진 조건에 따라 실행을 할 것인지 말 것인지 정해주는 역할을 합니다. 오늘은 총 세가지의 조건문을 소개해볼텐데요! 정말 많이 쓰이고 쉬운 친구들이니 외우셔서 잘 사용하시기 바랍니다! if if문은 어쩌면 조건문의 기본형이라고 볼 수 있습니다. 조건에 따라서 실행을 할 것인지 말 것인지를 정해주는데요! ex) if (num1 > num2) //num1이 num2보다 크다면 아래의 중괄호를 실행한다 { printf("num2이 n..

[C기초문법] 반복문(while, do while, for)

이번 글에서는 C언어 입문자들도 쉽게 배우고, 꼭 배워야하는 자주 쓰이는 "반복문"에 대해 글을 적어보려 한다! 반복문은 이름 그래도 어떤 것을 반복해서 하고 싶을 때 사용되는 것이다. 예를 들어 우리가 "Hello World"를 10번 출력 받는 코드를 짠다고 가정해보자. 10번 정도는 반복문 없이도 (이미 살짝 귀찮긴 하지만😅)충분히 코드를 짤 수 있다. #define _CRT_SECURE_NO_WARNINGS #include int main(void) { printf("Hello World\n"); printf("Hello World\n"); printf("Hello World\n"); printf("Hello World\n"); printf("Hello World\n"); printf("Hello..

[C-FAQ] scanf vs scanf_s

Visual Studio에서 scanf 함수를 사용하라고 하면 scanf_s로 바꿔서 사용하라고 하며 에러가 뜬다 . 이 둘의 차이가 무엇일까? scanf_s 함수는 문자열을 받는 상황에서 일정 개수의 문자만 받을 수 있다. ex) char str[20] = {"\0"}; scanf_s("%s",str,20); scanf("%s",str)은 20자리 이상의 문자열을 받으면 오류를 일으킬 수도 , 그렇지 않을 수도 있는 반면 scanf_s는 런타임 오류를 발생시킨다. 그러므로, 많은 프로그래머들이 scanf _s를 쓰는 것을 추천하고 있는 상황이다. 하지만 나는 개인적으로 scanf_s보다 scanf가 편할 때가 많아서 컴파일 에러를 뜨지 않게 하면서 scanf 함수를 사용할 수 있는 헤더파일을 애용하고 ..

C언어 FAQ 2022.02.05

[C기초문법] 배열기초

배열을 선언하는 방법 자료형 변수[배열 크기] = {0,}; ex): int num[10] = {0,}; 배열의 크기가 10인 int 형 배열을 선언한 것이다. 그 뒤 {0,} 구문을 사용해 배열을 초기화 한 것이다. 배열의 크기 sizeof(변수명) sizeof 라는 함수는 배열 크기가 아닌, 변수의 크기를 돌려준다. sizeof(배열)은 배열의크기*각변수의크기를 의미한다. 그러므로 int num[5]={0,}; int size=sizeof(num); printf(”num 배열의 크기: %d”,size); num배열의 크기: 20 int 자료형의 크기는 4이고, 배열의 크기는 5이기 때문에 5*4=20이 되는 것이다.

[C기초문법] 자료형

자료형(data type) : 어떤 변수가 정수인지 실수인지, 혹은 문자인지 등을 알려주는 일종의 꼬리표 int - 정수형 float/double - 실수형 ex) float number1 = 2.12F; double number2 = 10.45; float 변수 뒤엔 F가 붙어있는데, 이것은 float 변수를 선언하고, 사용했다는 표시를 해주는 것이다. 하지만 double 뒤에는 아무것도 붙지 않는다. 둘다 실수를 표현하는 자료형이므로 소수점을 표현할 수 있지만, float에 비해 double 이 좀 더 정밀하게 실수를 표현한다. char - 문자 string 타입이 문자열을 담당하는 것과는 달리, char 타입은 문자 하나를 담당하기 때문에 한 글자씩밖에 저장할 수 없다. 또한, char 타입은 작은..

[C] 백준 1008번: A/B

문제에서 언급하는 절대오차와 상대오차가 무엇일까? 절대오차(Absolute Error) 절대오차는 오차의 크기 그 자체의 값을 의미한다. ex) 실제 값이 200cm이고 측정한 값이 180cm이라 가정하였을 때, 이때 절대오차는 200-180=20cm가 된다. 상대오차 (Relative Error) 상대오차는 절대오차와는 달리 단위가 존재하지 않고 백분율(%)로 나타낸다. 상대오차 = 절대오차 / 실제 값 나의 코드 #include int main() { int a, b; scanf("%d %d", &a, &b); printf("%.9f\n", (double)a / b); return 0; } 코드설명 (double)(a / b) 라고 적으면 원하는 값이 출력되지 않는다. A, B 모두 int형이기 때문..

백준 알고리즘 2022.01.31