일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 문법
- Desktop
- 함수
- 프로그래밍
- Visual Studio
- 티스토리
- 리뷰
- tipssoft
- CS
- Direct2D
- 연산자
- 포인터
- 백준
- doit코틀린프로그래밍
- Tips강좌
- VS ERROR
- 알고리즘
- 이지스퍼블리싱
- Windows
- 김성엽
- c++
- Tips프로그래밍강좌
- Win32
- Javascript
- Kotlin
- c#
- Programming
- c
- 배열
- 지식나눔강좌
- Yesterday
- Today
- Total
목록DEV (265)
F.R.I.D.A.Y.
변수를 사용하는 것만큼, 중요한 것이 변수 초기화 과정입니다. 이 포스트에서는 변수 초기화는 무엇이고 언제 초기화를 해야 하는지 알아봅니다. 초기화란? 먼저 시작에 앞서 초기화는 무엇인지 알아봅니다. 네이버 지식백과에선 초기화를 다음으로 정의하고 있습니다. 컴퓨터 프로그램의 최초 또는 미리 정해진 계수, 스위치, 주소, 기억 장치의 내용 등을 '0' 또는 기타의 값으로 설정하는 것. 일반적으로 설명을 할 때는 이렇게 말을 하곤 합니다만, 저는 다른 정의를 말씀드리고 싶습니다. 변수의 값을 예측 가능한 값으로 만드는 것. 실제로 변수는 메모리에 위치하는데, 메모리는 PC내 모든 프로그램이 공유해 사용합니다. 내 프로그램이 사용하기 전에 다른 프로그램이 사용했을 수 있다는 것입니다. 이러한 특성 때문에 메모..
문제 재용이는 최신 컴퓨터 10대를 가지고 있다. 어느 날 재용이는 많은 데이터를 처리해야 될 일이 생겨서 각 컴퓨터에 1번부터 10번까지의 번호를 부여하고, 10대의 컴퓨터가 다음과 같은 방법으로 데이터들을 처리하기로 하였다. 1번 데이터는 1번 컴퓨터, 2번 데이터는 2번 컴퓨터, 3번 데이터는 3번 컴퓨터, ... , 10번 데이터는 10번 컴퓨터, 11번 데이터는 1번 컴퓨터, 12번 데이터는 2번 컴퓨터, ... 총 데이터의 개수는 항상 a^b개의 형태로 주어진다. 재용이는 문득 마지막 데이터가 처리될 컴퓨터의 번호가 궁금해졌다. 이를 수행해주는 프로그램을 작성하라. 1009번: 분산처리 입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트 케이스에 대해 정수 a..
문제 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그램 봉지와 5킬로그램 봉지가 있다. 상근이는 귀찮기 때문에, 최대한 적은 봉지를 들고 가려고 한다. 예를 들어, 18킬로그램 설탕을 배달해야 할 때, 3킬로그램 봉지 6개를 가져가도 되지만, 5킬로그램 3개와 3킬로그램 1개를 배달하면, 더 적은 개수의 봉지를 배달할 수 있다. 상근이가 설탕을 정확하게 N킬로그램 배달해야 할 때, 봉지 몇 개를 가져가면 되는지 그 수를 구하는 프로그램을 작성하시오. 2839번: 설탕 배달 문제 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N..
말 그대로 부동 소수점, C/C++에서는 float나 double로 불리는 자료형은 == 연산자로 비교해서는 안됩니다. 그 이유를 알아봅시다. 3.14 == 3.14는 거짓일 수 있습니다. 3.14를 비교하는 코드를 보겠습니다. #include int main(void) { double fval = 3.14; printf("%.10lf %.10f \n", fval, (float)fval); return 0; } 같은 값이 나올까요? 아닙니다, 출력해보면 아래와 같이 오차를 포함하여 출력이 될겁니다. 오차 값은 때에 따라 달라질 수 있습니다. 어째서 이런 일이 벌어질까요? 컴퓨터는 소수를 표현하기 위해 대표적으로 두가지 방법을 사용합니다. 고정소수점 부동소수점 간단히 설명하면 고정소수점방식은 일정 비트는 ..
프로그램을 작성하다 보면 아래 이미지와 같이 파일을 열 수 없다는 오류가 나옵니다. 이러한 오류가 왜 나타나는지 알아보고, 문제를 해결해봅시다. 다만, 안내하는 원인과 해결법은 모든 경우에 대해서 해결하는 방법이 아님을 참고하세요. 원인 1: 존재하지 않는 파일 열고자 하는 파일이 존재하지 않거나, 위치를 잘못 지정해준 경우가 위와 같은 문제가 발생할 수 있습니다. 해결 1: 없는 파일 생성 원인 1의 문제를 해결하기 위해서는 존재하지 않는 파일을 생성해 주어야 합니다. 이 경우에는 hello.h라는 헤더 파일이 존재하지 않으므로 hello.h라는 헤더파일을 생성해주겠습니다. 솔루션 탐색기의 헤더 파일이 이름으로 되어있는 폴더 오른쪽 마우스 클릭한 후 메뉴에서 [추가 - 새 항목]을 클릭합니다. 항목에서..
※ VS2019 기준으로 작성되었습니다. #include int main(void) { int v; scanf("%d", &v); return 0; } 위와 같이 작성하면 다음과 같은 경고가 발생합니다. 경고 수준에 따라 오류로 발생할 수 있습니다. 여기서 C4996 오류는 다음 항목을 참고하세요. 이번 포스트에서는 C6031 오류를 다루겠습니다. 원인 함수 scanf의 반환값을 어딘가에 대입하거나 사용하지 않아서 발생하는 경고입니다. 코드상 문제도 없으며, 단순히 버려지는 값이 있음을 알리기 위해 인텔리센스가 안내하는 내용입니다. 만일 원하는 작업대로 정상 동작 한다면 무시하셔도 됩니다. 경고 가리기 경고를 가리고싶다면 아래 안내를 따라하세요. Plan1. 프로젝트 속성 수정 상단 [프로젝트 - 속성]..
종종 프로그램을 작성하다가 보면 아래와 같은 런타임 오류가 발생하는 경우가 있습니다. 이 문제는 왜 발생하는걸까요? 위 문제는 아래 코드로부터 발생되었습니다. #include int main(void) { int a; printf("변수 a의 값은 %d입니다.", a); return 0; } 위 코드를 작성하고 컴파일을 진행하면 아래와 같은 경고가 발생합니다. 컴파일러 경고 수준에 따라 경고가 오류로 발생할 수도 있습니다. 1. 원인 말 그대로 a 변수를 초기화 하기 전에 해당 변수를 사용해 발생하는 문제입니다. 변수를 처음 만들게 되면 기존 메모리에 들어있는 값을 그대로 사용하게 되기 때문에 어떤 값이 들어있는지 알 수 없습니다. 그래서 예외 발생의 가능성이 있죠. 따라서 프로그램이 변수에 들어있는 값..
C의 main 선언 방식과 C++의 main 선언 방식이 차이가 있다는 얘기를 들었다. // C 타입 int main(void){ return 0; } // C++ 타입 int main(){ return 0; } main 파라미터에 void를 작성하면 C타입, 그렇지 않으면 C++타입이라고 하는데 자세한 출처는 찾아봐야겠다. 문서 하단을 참고하세요. 11. ANSI/ISO Standard C C++ 언어와는 달리, C 언어 표준에서는 main()이 재귀적으로 (즉, recursive하게, main이 다시 main을 부르는 경우) 호출되는 것을 막지 않았습니다.11.5 즉, 원한다면 main에서 다시 main을 부를 수 있습니다. 그러나, IOCCC에 출품할 것이 아니라면, 그런 코드를 만들 이유가 없습니..
#pragma warning(disable:4996) #include #include // strcpy 사용을 위한 string.h 헤더 추가 int main(void) { char *str1 = "hello"; char str2[20] = { 0, }; strcpy(str2, str1); printf("%s\n%s\n", str1, str2); return 0; } 잠재적으로 문제를 일으킬 수 있는 코드는 모여서 큰 오류를 일으킬 수 있으니 하나하나 해결해보세요. 사라지는 오류/경고 항목을 보면서 희열을 느끼실 때가 올겁니다 :)
프로그래머에게 중요한 것 중에 하나가 폰트인데, 왜 필요한지 알아봅시다. 1. 글씨의 모양 위 이미지는 굴림으로 대문자 I(아이)와 소문자 L(엘)을 작성한 이미지입니다. 뭐가 i이고 뭐가 L인가요? 코드를 이해함에 있어 문자의 모호함은 불편을 가져올 수 있습니다. 대문자 O(알파벳 오)와 숫자 0또한 모양이 비슷하기 때문에 불편을 가져올 수 있습니다. 그에 반하여 많은 프로그래머들이 사용하는 프로그래밍용 글꼴 두가지를 들어볼까요? D2Coding과 Consolas를 들어보겠습니다. consolas L과 i D2Coding L과 i 굴림 등의 폰트와 달리 모양이 비교적 명확히 구분됩니다(테스트 해보니 Consolas의 소문자 L과 1은 비교적 비슷했습니다.) 그 뿐만 아닙니다. 글씨의 폭에도 영향을 받습..