문제풀기113 1067. 정수 1개 입력 받아 분석하기 정수 1개가 입력되었을 때, 음(minus)/양(plus)과 짝(even)/홀(odd)을 출력해보자. 참고 조건/선택 실행 구조의 안에 조건/선택 실행 구조를 다시 "중첩"할 수 있다. 이는 "중첩(nested)"의 원리가 적용되는 내용으로 아래와 같은 구조가 가능하다. if(조건1) { if(조건2) //조건문의 중첩 { ... } else { ... } } else { if(조건2) { ... } else { ... } } 위와 같은 조건/선택 실행구조는 조건/선택 실행구조를 중첩해 서로 다른 4가지(2가지*2가지)의 경우에 대해 다른 실행을 할 수 있도록 해준다. ** 어떤 조건들이 맞았을 때에는 해당부분의 코드블록 내용만 실행되고, 전체 조건/선택 실행구조를 빠져나간다. 즉, 다른 부분들은 실행되.. 2023. 4. 11. 1066. 정수 3개 입력 받아 짝/홀 출력하기 세 정수 a, b, c가 입력되었을 때, 짝(even)/홀(odd)을 출력해보자. 참고 if(조건) { //코드블록1 시작 ... 실행...; ... } else { //코드블록2 시작 ... 다른실행...; ... } 의 조건/선택 실행구조는 주어진 “조건”을 검사해 참인 경우에는 코드블록1을 실행하고, 거짓인 경우에는 코드블록2를 실행한다. 예시 if(a%2==0) { printf(“even”); } else { printf(“odd”); } ** else는 if 없이 혼자 사용되지 않는다. 또한, else 다음에 조건이 없는 이유는? 참이 아니면 거짓이고, 거짓이 아니면 참이기 때문에... 즉 if문의 조건식의 판별 결과는 2가지 경우(참 또는 거짓)로 계산되는데, else 부분은 if문의 조건식의.. 2023. 4. 10. 1065. 정수 3개 입력 받아 짝수만 출력하기 세 정수 a, b, c가 입력되었을 때, 짝수만 출력해보자. 참고 if(조건) { //조건이 참일 때에만 실행되는 구역(코드블록의 시작) 실행1; 실행2; ... } //코드블록의 끝 의 조건/선택 실행 구조는 주어진 “조건”을 검사해 그 결과가 참인 경우에만 코드블록 안에 작성된 내용들을 순서대로 실행한다. 예시 if(a%2==0) { printf(“%d”, a); } if(b%2==0) { printf(“%d”, b); } if(c%2==0) { printf(“%d”, c); } ** a%2==0 은 a%2가 먼저 수행되고 그 결과를 0과 비교한 참/거짓 값을 계산한다. a%2==0의 의미는 a를 2로 나눈 나머지를 0과 비교한 결과 값(참/거짓)이다. 따라서, if(a%2 == 0) 는 “a가 짝수.. 2023. 4. 9. 1064. 정수 3개 입력 받아 가장 작은 수 출력하기 1입력된 세 정수 a, b, c 중 가장 작은 값을 출력하는 프로그램을 작성해보자. 단, 조건문을 사용하지 않고 3항 연산자 ? 를 사용한다. 참고 C언어 소스코드 작성시 모든 요소들은 "순서에 따라 한 단계씩 실행" "미리 정해진 순서에 따라 하나씩 연산 수행" "그 때까지 연산된 결과를 이용해 다시 순서에 따라 하나씩 연산" ... 등의 원리가 적용된다. 따라서 3항 연산자 ? 를 중첩해(괄호로 묶는 등..) 이용하면 여러 값들을 순서대로 비교해 가장 큰/작은 값을 계산할 수 있다. 예를 들어 (a>b ? a:b)>c ? (a>b ? a:b):c 의 계산식은 a, b, c 의 값 중 가장 큰 값으로 계산된다. 잘 이해가 되지 않는다면 어떤 순서에 따라 계산될지 생각해보고 여러 가지 연산자가 동시에 사.. 2023. 4. 9. 1063. 두 정수 입력 받아 큰 수 출력하기 입력된 두 정수 a, b 중 큰 값을 출력하는 프로그램을 작성해보자. 단, 조건문을 사용하지 않고 3항 연산자 ? 를 사용한다. 참고 3개의 요소로 이루어지는 3항(ternary) 연산자는 "조건식 ? (참일 때의 값) : (거짓일 때의 값)” 의 형태로 사용하는 연산자이다. - 조건식의 계산 결과가 참인 경우에는 ':' 왼쪽의 값 또는 식으로 바뀌고, - 거짓인 경우에는 ':' 오른쪽의 값 또는 식으로 바뀐다. 예를 들어 123 > 456 ? 0 : 1 과 같은 표현식은 123 > 456 의 비교연산 결과가 거짓이므로 1이 된다. 예시 printf("%d", a>b ? a:b); //두 값 중 큰 값이 출력된다. 예시 코드는 a>b 의 결과가 참(1)이면 (a>b ? a:b)의 결과는 a가 되고, 거짓.. 2023. 4. 7. 1062. 비트 단위로 XOR 하여 출력하기 입력된 정수 두 개를 비트단위로 xor 연산한 후 그 결과를 정수로 출력해보자. 비트단위(bitwise) 연산자 ^(xor, circumflex/caret, 서컴플렉스/카릿)를 사용하면 된다. ** 주의 ^은 수학식에서 거듭제곱(power)을 나타내는 기호와 모양은 같지만, C언어에서는 전혀 다른 배타적 논리합(xor, 서로 다를 때 1)의 의미를 가진다. ** 비트단위(bitwise) 연산자는, ~(bitwise not), &(bitwise and), |(bitwise or), ^(bitwise xor), (bitwise right shift) 가 있다. 예를 들어 3과 5가 입력되었을 때를 살펴보면 3 : 00000000 00000000 00000000 00000011 5 : 00000000 0000.. 2023. 4. 6. 이전 1 ··· 7 8 9 10 11 12 13 ··· 19 다음