본문 바로가기

Coding Tests

(78)
코드업 1055번(논리연산자 || 사용) 두 개의 참(1) 또는 거짓(0)이 입력될 때, 하나라도 참이면 참을 출력하는 프로그램을 작성해보는 문제이다. #include int main(void) { int a, b; scanf("%d %d", &a, &b); if ((a != 0) || (b != 0)) printf("1"); else printf("0"); return 0; } || 는 or라고 생각해주면 될 것 같다. or는 하나라도 1이 있으면 1을 반환하는 연산이다.
코드업 1054번(논리 연산자&&) 두 개의 참(1) 또는 거짓(0)이 입력될 때, 모두 참일 때에만 참을 출력하는 프로그램을 작성해보는 문제이다. #include int main(void) { int a,b; scanf("%d %d", &a,&b); if ((a ==1)&&(b==1)) printf("1"); else printf("0"); return 0; } 이 문제에서 1과 0 만이 입력값으로 들어오는 것을 알고 있어서, 1은 참 0은 거짓으로 생각하고 이렇게 코드를 작성하였다. 단, 입력값으로 2 나 3이 들어왔을 때 0이 출력이 되는데 , 이 문제에서 1과 0만이 입력된다는 것을 모른다면, 문제가 될 소지가 있다. #include int main(void) { int a,b; scanf("%d %d", &a,&b); if ((a..
코드업 1053번(참 , 거짓 바꾸기) 1(true, 참) 또는 0(false, 거짓) 이 입력되었을 때 반대로 출력하는 프로그램을 작성해보는 문제이다. 내가 처음 접근했던 풀이이다. 1이든 2든 0이 아닌 수를 입력하면 0이 출력이 되는데, 0을 입력했을 때도 0이 나온다. 그 이유는 if의 조건식 성립이 잘 못되었기 때문이라고 생각한다. #include int main(void) { int a; scanf("%d", &a); if (a = 0) printf("1"); else printf("0"); return 0; } #include int main(void) { int a; scanf("%d", &a); printf("%d", !a); return 0; } 논리 연산자 ! 을 통해 단순히, 변수 a 앞에! 를 써주는 것만으로도, 참이면..
코드업 1048번(2의 제곱배 곱하여 출력해보기) 정수 2개(a, b)를 입력받아 a를 2의 b승배 곱한 값으로 출력해보는 문제이다. 0
코드업 1040번(부호 바꿔 출력해보기) 입력된 정수의 부호를 바꿔 출력해보는 문제이다. 단, -2147483647 ~ +2147483647 범위의 정수가 입력된다. #include int main(void) { int a; scanf("%d", &a); printf("%d", -a); return 0; } 단항 연산자인 - 를 변수 앞에 붙이면, 부호가 반대로 바뀌어 계산된다.
코드업 1038번(정수 합 출력) 정수 2개를 입력받아 합을 출력하는 프로그램을 작성해보는 문제이다. (단, 입력되는 정수는 -1073741824 ~ 1073741824이다.) 입력되는 정수의 값의 범위에서 만약 최솟값 2개 가 입력이 된다면, int형으로 표현할 수 있는 값의 표현 범위를 넘어서게 된다. 그래서 값의 표현 범위가 더 큰 자료형을 선택하여 풀어줘야 하는데, long long int를 사용해 풀어주었다. #include int main(void) { long long int a, b; scanf("%lld %lld", &a, &b); printf("%lld", a + b); return 0; } #include int main(void) { unsigned int a, b; scanf("%u %u", &a, &b); pri..
코드업 1033번(16진수 출력 결과값 알파벳 대문자로 출력해보기) 10진수를 입력받아 16진수(hexadecimal)로 출력해보는 문제인데, % x를 사용하면 알파벳 소문자로 출력이 되고, % X처럼 대문자를 서식 문자로 지정하여 주면, 알파벳 대문자가 출력 결과로 나오는 것을 볼 수 있다. #include int main(void) { int num; scanf("%d", &num); printf("%X", num); return 0; } %x사용시 255입력----출력:ff %X사용시 255입력---출력:FF
코드업 1032번(16진수로 출력해보기) 10진수를 입력받아 16진수(hexadecimal)로 출력해보는 문제이다. #include int main(void) { int A; scanf("%d", &A); printf("%x",A); return 0; } 10진수를 16진수로 출력해주기 위해 % x의 서식 문자를 사용해주었다. 8진수와 16진수를 이용해 데이터를 표현하는 부분이 잘 생각이 나지 않아 알아보았다. 8진수와 16진수를 이용한 데이터 표현을 알아보면 #include int main(void) { int num = 10; int num2 = 012; int num3 = 0xA; printf("%d", num); printf("%d", num2); printf("%d", num3); return 0; } num2 = 012 라는 문장이 ..