본문 바로가기

c언어코드업문제풀이23

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.
C언어 코드업 1019번 1019 : [기초-입출력] 연월일 입력받아 그대로 출력하기 문제 년, 월, 일을 입력받아 지정된 형식으로 출력하는 연습을 해보자. 문제풀이 #include #pragma warning(disable:4996) int main() { int y, m, d; scanf("%d.%d.%d", &y,&m,&d); printf("%04d.%02d.%02d", y,m,d); return 0; } - scanf 함수에 .으로 구별하여 각각 %d를 연월일 3개를 입력한다. - printf 함수로 출력 시 %04d로 서식을 지정하면 4자릿수 출력에 자릿수가 비면 0을 입력한다. 예를 들어 99년도는 0099년 출력. 2022. 2. 6.