LimHanseong / LimHanseong-2022

청주대학교 2022년도 2학기 공학컴퓨터프로그래밍 학습 및 레포트/프로젝트 제출
BSD 3-Clause "New" or "Revised" License
0 stars 0 forks source link

8nd week Problem Solving #8

Open LimHanseong opened 2 years ago

LimHanseong commented 2 years ago
  1. 문제에 주어진 대로 입력해서 결과값 확인하기 Prob_1 실행사진

비주얼 스튜디오를 사용해 코딩을 하다보니 scanf와 마찬가지로 strcpy, strcat, strncpy를 사용하려면 _s를 붙여줘야했다. 이렇게 하니 strncpy_s가 strncp와 같은 기능을 하지 않아 원하는 결과값을 출력해낼 수가 없었다. 그래서 프로젝트 속성페이지에서 SDL검사를 아니요로 설정하고 결과값을 확인했다.

  1. 단어를 입력하면 출력한다. 단 5글자를 넘어가면 6번째 글자부터 '*'로 바꿔서 출력한다. 글자 최대개수는 5개이다. Prob_2 실행사진

글자의 최대개수는 배열의 크기로 지정해주었다. 그리고 strncat을 이용하여 글자수가 5개를 넘어가는 경우 단어를 5글자까지만 자르고 넘어간 글자수만큼 별모양을 쌓았다. getchar함수를 사용해봤다. 처음엔 이 함수를 통해 입력된 값을 바로 문자열에 넣으려고 했는데, 함수 형태가 맞지 않다고 오류가 났다. 확인해보니 getchar함수는 int형식으로 선언된 함수였다. 그래서 강의자료에 있는 내용을 참고해 단어를 입력받는 함수를 따로 만들어 사용하였다. 이 문제 또한 SDL검사를 아니요로 설정하고 해결하였다.

  1. 단어를 3대 입력받아 사전에 나오는 순서대로 배열하여 출력하기 Prob_3 실행사진

전에 오름차순 내림차순 문제를 해결했던 것을 응용했다. 단어를 저장할 배열은 3행으로 구성된 2차 배열로 선언하였다. 배열의 순서는 strcmp로 비교한 뒤 조건에 충족할 경우 strcpy를 통해 스왑해주었다. 사용한 함수만 조금 달라졌지 전에 해결했던 문제와 크게 다르지 않았다.

  1. 출력값이 30이 되기 위한 add_by_pointer함수의 내용 채우기 Prob_4 실행사진

중간고사 전 배웠던 포인터의 형태를 다시 한 번 복기할 수 있는 문제였다. 그간 문제에서는 포인터 함수들 간의 사칙연산은 많이 써볼 일이 없었다. 포인터가 지칭하는 변수의 값을 가져와 사용하기 위해서는 *를 앞에 붙여준다는 것을 다시 한 번 복기하였다.

  1. 2개의 전역 변수의 값을 입력하고 교환 후 출력하는 프로그램 작성하기. 입력, 교환, 출력 작업을 하는 함수 작성하기 Prob_5 실행사진

함수를 짜는 것은 간단했다. 하지만 전역변수를 사용한 것은 이번이 처음이었다. 그동안 지역변수는 많이 사용했지만, 전역변수는 아니었다. 일정 코드들 전체에 걸쳐 공통적으로 사용하는 변수 같은 경우는 전역변수를 통해 사용해도 좋을 것 같다.

@swcho84