C언어30 CodeUp[코드업] C언어 1078 ~ 1085 : [기초 - 종합] 1078 : [기초 - 종합] 짝수 합 구하기 문제 설명 : https://codeup.kr/problem.php?id=1078 정수를 입력받아 1부터 그 수까지 짝수의 합을 구하는 문제다. 이제부터는 지금까지 배운 문제를 종합하는 문제가 나온다. 종합문제에 대한 설명은 주석으로 대신하겠다. 더보기 #include int main() { int sum = 0; int i, j; scanf("%d", &j); // 정수를 입력받아 j에 저장 for(i = 1; i = j) // sum이 j보다 크거나 같을 때 밑 구문을 실행 printf("%d", i); // i를 출력 } return 0; } 1081 : [기초 - 종합] 주사위를 2개 던지면? 문제 설명 : https://codeu.. 2019. 12. 9. CodeUp[코드업] C언어 1071 ~ 1077 : [기초 - 반복 실행구조] 1071 : [기초 - 반복 실행구조] 0 입력될 때까지 무한 출력하기 1 문제 설명 : https://codeup.kr/problem.php?id=1071 0이 입력될 때까지 출력하는 문제다. 제어문을 배운다. 제어문 중 goto문을 배운다. goto문을 사용하면 간단한 반복 실행을 만들 수 있다. goto문은 break문처럼 특정 위치로 프로그램의 흐름을 '즉시'변경한다. break문은 대상 위치가 문법적으로 제한된 상태이고 변경할 수도 없다. 또한 switch문과 반복문으로 사용이 제한된다. 반면에 goto문은 사용자가 레이블로 명시한 위치면 어디든 이동할 수 있다. 따라서 아무 제한 없이 코드의 흐름을 변경할 수 있다. 이것이 장점처럼 보이지만, 사실은 매우 심각한 단점이다. 코드의 흐름을 뒤죽박.. 2019. 12. 9. CodeUp[코드업] C언어 1063 ~ 1070 : [기초 - 삼항연산] ~ [기초 - 조건/선택 실행구조] 1063 : [기초 - 삼항 연산] 두 정수 입력받아 큰 수 출력하기 문제 설명 : https://codeup.kr/problem.php?id=1063 입력된 두 정수 중 큰 수를 출력하는 문제다. 조건 연산자(삼항 연산자)를 배운다. 조건 연산자(삼항 연산자)를 의미하는 연산자는 '? :'이다. 조건 연산자는 C언어의 유일한 삼항 연산자다. 사용방법이나 문법구조가 지금까지 배운 연산자들과는 전혀 다르게 피연산자로 조건식이 필요하다. 그 조건의 결과로 피연산자인 두 개 항에서 하나를 선택한다. 삼항 연산자의 문법구조는 '조건식 ? x : y' 이렇게 된다. 이때, 조건식이 참이면 A를 선택하지만 거짓이면 B를 선택한다. 따라서 A와 B가 동시에 선택될 수 없다. 조건식은 대부분 관계 연산식이나 논리 연산.. 2019. 12. 9. CodeUp[코드업] C언어 1053 ~ 1062 : [기초 - 논리 연산] ~ [기초 - 비트단위 논리 연산] 1053 : [기초 - 논리 연산] 참 거짓 바꾸기 문제 설명 : https://codeup.kr/problem.php?id=1053 참(True, 1) 또는 거짓(False, 0)이 입력되었을 때, 반대로 출력하는 문제다. 논리 연산자를 배운다. 논리 연산자 중 부정(NOT) 연산자를 배운다. C언어에서 비교 연산이 수행될 때 0은 거짓(False)이다. 비교 연산이 수행될 때 참(True)은 0이 아닌 모든 수다. 논리 연산자 부정(NOT)을 의미하는 연산자는 '!'다. 논리 연산자는 참 / 거짓으로 결론 내릴 수 있는 두 대상을 피연산자로 사용한다. 논리 연산자에는 '||' (논리합, OR), '&&' (논리곱, AND), '!' (부정, NOT)이 있다. '!' (부정, NOT) 연산은 저장된 값.. 2019. 12. 9. CodeUp[코드업] C언어 1047 ~ 1052 : [기초 - 시프트 연산] ~ [기초 - 비교 연산] 1047 : [기초 - 비트 시프트 연산] 정수 1개 입력받아 2배 곱해 출력하기 문제 설명 : https://codeup.kr/problem.php?id=1047 정수를 입력받아 2배 곱해 출력하는 문제다. 비트 연산자를 배운다. 비트 연산자 중 시프트 연산을 사용한다. 비트 연산자란 자료형을 근거로 해석된 정보가 아니라, 일정 길이의 메모리에 담긴 2진수 정보를 말 그대로 비트 단위로 계산하는 연산자다. C언어 비트 연산자는 &(AND), |(OR), ^(XOR), ~(NOT), (Shift right)가 있다. 이중 ~(NOT)은 단항 연산자고 나머지는 모두 2항 연산자다. 비트 단위 상수를 기술할 때는 보통 16진수를 사용한다. 여기서는 비트 연사자 중 시프트 연산을 배우고 다른 비트 연산자가 나.. 2019. 12. 8. CodeUp[코드업] C언어 1038 ~ 1046 : [기초 - 산술 연산] 1038 : [기초 - 산술 연산] 정수 2개 입력받아 합 출력하기 1 문제 설명 : https://codeup.kr/problem.php?id=1038 정수 두 개를 합하는 문제다. 정수 두 개를 입력받는다. 공백으로 구분된다. 정수를 합하여 출력한다. 합한 결과 값이 int 범위를 넘는지 생각해야 한다. 여기서는 연산자를 배운다. 1024 문제에서 연산자 우선순위를 배웠다. 연산자 우선순위는 매우 중요하기 때문에 보면서 실습해야 한다. 연산자의 첫 번째는 산술 연산자다. 산술 연산자는 기본적으로 알고 있는 수학에 대한 상식을 C언어로 그대로 옮긴 문법이다. 덧셈, 뺄셈 연산은 각각 '+'와 '-'로 표시하며 곱셈과 나눗셈은 각각 '*'와 '/'로 표시한다. 나머지 연산자는 '%'로 표시한다. 나머지 .. 2019. 12. 8. CodeUp[코드업] C언어 1028 ~ 1037 : [기초 - 데이터형] ~ [기초 - 출력 변환] 1028 : [기초 - 데이터형] 정수 1개 입력받아 그대로 출력하기 2 문제 설명 : https://codeup.kr/problem.php?id=1028 정수를 입력받아 그대로 출력하는 문제다. %u는 unsigned다. %u는 32bit(4byte) 정수에 대한 출력 형식이다. unsigned int 데이터형을 사용하면 0 ~ 4294967295 범위의 정수를 저장한다. int는 +- 약 21억이지만 부호가 없기 때문에 약 21억, 약 21억을 더해 약 43억 미만의 범위를 저장한다. 여기서는 int의 부호가 없는 정수형 출력을 배운다. 더보기 #include int main() { int x; scanf("%u", &x); printf("%u", x); return 0; } 1029 : [기초 - .. 2019. 12. 7. CodeUp[코드업] C언어 1020 ~ 1027 : [기초 - 입출력] 1020 : [기초 - 입출력] 주민번호 입력받아 형태 바꿔 출력하기 문제 설명 : https://codeup.kr/problem.php?id=1020 주민번호를 입력받아 출력하는 문제다. 주민번호 앞 6자리와 뒷 7자리의 입력은 '-'로 구분되어 입력된다. 몇 자리 숫자인지 어떤 숫자가 앞자리에 오는지를 생각한다. %d로 출력할 때 앞자리에 0이 입력되었을 때 어떻게 출력되는지를 생각한다. 더보기 #include int main() { int x, y; scanf("%d-%d", &x, &y); printf("%06d%d", x, y); // 앞자리는 6자리이고 %d는 0이 입력되었을 때 생략이 되기 때문에 0을 포함하는 %06d를 사용한다. return 0; } 1021 : [기초 - 입출력] 단어 .. 2019. 12. 5. CodeUp[코드업] C언어 1010 ~ 1019 : [기초 - 입출력] 1010 : [기초 - 입출력] 정수 1개 입력받아 그대로 출력하기 문제 설명 : https://codeup.kr/problem.php?id=1010 정수(int)를 입력받아 그대로 출력하는 문제다. 사용자의 입력을 받을 수 있는 scanf() 함수를 배운다. scanf() 함수는 형식 문자열에 맞추어, 표준 입력장치(stdin)로부터 정보를 읽어 들이는 함수다. 가변 인자는 사용자가 입력한 값이 저장된 메모리의 주소다. &(Ampersand(앰퍼샌드))기호는 주소 연산자다. &n은 n변수의 주소라는 의미다. scanf() 함수를 사용할 때 & 기호(주소 연산자)를 빼먹는 실수를 자주 하기 쉽다. scanf() 함수의 형식 문자열에 개행 문자(\n)를 포함하는 것은 매우 잘못된 것이다. scanf() 함.. 2019. 12. 5. CodeUp[코드업] C언어 1001 ~ 1008 : [기초 - 출력] 1001 : [기초 - 출력] 출력하기 01 문제 설명 : https://codeup.kr/problem.php?id=1001 Hello를 출력하는 아주 간단한 문제다. 책이나 강의를 잠깐이라도 봤다면 누구나 풀 수 있을 것이라 생각한다. printf() 함수는 출력을 담당하는 함수다. 더보기 #include int main(void) { printf("Hello"); return 0; } 1002 : [기초 - 출력] 출력하기 02 문제 설명 : https://codeup.kr/problem.php?id=1002 Hello World를 출력하는 문제다. 앞 문제 1001과 같은 문제이므로 자세한 풀이는 생략한다. printf()는 출력을 담당하는 함수다. 더보기 #include int main(void.. 2019. 12. 4. 이전 1 2 3 다음