본문 바로가기

printf19

C언어 코드업 1023번 1023 : [기초-입출력] 실수 1개 입력받아 부분별로 출력하기(설명) 문제 실수 1개를 입력받아 정수 부분과 실수 부분으로 나누어 출력한다. 문제풀이 #include #pragma warning(disable:4996) int main() { int x,y; scanf("%d.%d", &x,&y); printf("%d\n", x); printf("%d", y); return 0; } - 문제에서 특별히 소수점 아래 자리는 0이 입력되지 않는다고 하였으므로 입력되는 숫자 예를 들어 1234.5676를 정수부와 소수점 아래 부분으로 나누어 입력 받는다. - 이를 printf 함수로 나누어 출력한다. 2022. 2. 8.
C언어 코드업 1022번 1022 : [기초-입출력] 문장 1개 입력받아 그대로 출력하기(설명) 문제 공백 문자가 포함되어 있는 문장을 입력받고 그대로 출력하는 연습을 해보자. 문제풀이 #include #pragma warning(disable:4996) int main() { char x[2001]; fgets(x,sizeof(x),stdin); printf("%s", x); } - 문제 입력에 최대 2000글자가 입력된다고 하므로 x[2001]로 문자열을 지정한다. - scanf 함수를 쓰지 않고 fgets(file-get-string) 함수를 사용하였다. 둘의 차이를 간단히 비교하면, scanf는 int, float, char, double 등 여러 종류의 데이터형을 입력받을 수 있으나 문자열에서는 약한데, 이유는 공백이 생기면 더 이상 입력을 받지 않기 때문이다. 반면에 fgets는 int,.. 2022. 2. 8.
C언어 코드업 1021번 1021 : [기초-입출력] 단어 1개 입력받아 그대로 출력하기(설명) 문제 1개의 단어를 입력받아 그대로 출력해보자. 문제풀이 #include #pragma warning(disable:4996) int main() { char x[51]; scanf("%s", x); printf("%s", x); } - char x[51]로 변수 선언한다. 문자열 선언이다. 최대 50개 문자를 저장한다고 했으므로 [51]로 설정한다. 1개가 추가된 이유는 종료되는 마지막에 NULL 값이 들어가기 때문이다. - 인덱스를 작게 설정하고 입력이 큰 경우 overflow가 발생하기 때문에 "Stack around the variable x was corrupted." debug 에러가 발생한다. 2022. 2. 6.
C언어 코드업 1020번 1020 : [기초-입출력] 주민번호 입력받아 형태 바꿔 출력하기 문제 주민번호는 다음과 같이 구성된다. XXXXXX-XXXXXXX 앞의 6자리는 생년월일(yymmdd)이고 뒤 7자리는 성별, 지역, 오류검출코드이다. 주민번호를 입력받아 형태를 바꿔 출력해보자. 문제풀이 #include #pragma warning(disable:4996) int main() { int a,b; scanf("%d-%d", &a,&b); printf("%06d%07d", a,b); return 0; } - a,b로 앞자리와 뒷자리를 - 를 기준으로 구별하여 입력받는다. - %06d, %07d를 통해 맨 앞자리가 0이더라도 출력되도록 한다. 예를들어 앞 자리에 99가 입력되는 경우, 000099로 출력되도록 한다. 2022. 2. 6.