본문 바로가기

c언어54

[c언어] Visual Studio 2017 설치하기 [Visual Studio 사용법] *0 코드로 인해 종료되었습니다 2018. 10. 5.
[c언어] c언어란? [c언어란?] c언어 : 1972년 켄 톰슨과 데니스 리치가 벨 연구소에서 일할 당시 새로 개발된 유닉스 운영 체제에서 사용하기 위해 개발한 프로그래밍 언어. 데니스 리치가 "B"언어를 개선하여 c언어가 탄생했다. 유닉스 바탕의 프로그램은 모두 c언어로 작성되었고, 수많은 운영 체제의 커널 또한 c로 만들어졌다. 오늘날 많이 쓰이는 c++은 c에서 객체 지향 언어로 발전된 것이다. 특징- 이식성이 뛰어나다. _다른 프로그램 언어보다 높은 호환성을 가지고 있고, c언어의 표준함수만 작성된 프로그램은 어떤 기종의 컴퓨터에서도 정상적으로 컴파일이 되고 실행될 수 있다.- 다양성을 가진다. _c언어는 과학 계산용 프로그램뿐만 아니라 FA(공장 자동화), OA(사무 자동화), GUI(Graphic User Int.. 2018. 10. 5.
[c언어] scanf 오류 해결 방법 [scanf 오류 해결] Visual Studio 2013 버전 이상부터 scanf를 사용하면 아래와 같은 에러가 나오면서 컴파일이 안된다.. 에러 메시지를 약간 해석하면 이 함수(scanf)는 취약하다. 대신해서 scanf_s를 사용해라 또는 _CRT_SECURE_NO_WARNINGS를 사용해라 라고 해석할수 있다. [해결방법] _ 아래의 3가지 방법중 하나 사용1. SDL 검사 아니요로 변경 - 프로젝트 명을 우클릭한후 속성 클릭 - C/C++에서 '일반'에 들어가면 SDL 검사가 있다. 아니요로 변경 2. 전처리기 정의 변경 - 프로젝트 명을 우클릭한후 속성 클릭 - C/C++에서 '전처리기'에 들어가면 전처리기 정의가 있다. 뒤에 _CRT_SECURE_NO_WARNINGS; 를 붙여넣어준다. 3... 2018. 10. 2.
[c언어 콘서트] 9장 2번 (역순 출력) [9장 2번] 포인터를 이용하여서 크기가 5인 1차원 정수 배열에 저장된 값을 역순으로 출력해보자. [풀이]#include void reverse(int *, int); int main() { int arr[5]; int i; printf("5개의 정수를 입력하시오 : "); for (i = 0; i = 0; i--) { printf("%d ", A[i]); } printf("\n"); } 2018. 9. 30.
[알고리즘] 유클리드 호제법 #c언어 [유클리드 호제법] 유클리드 호제법 : 2개의 자연수 또는 정식의 최대공약수를 구하는 알고리즘의 하나.- 명시적으로 기술된 가장 오래된 알고리즘으로 알려져있다.- 기원전 300년경에 쓰인 유클리드의 제 7권, 명제 1부터 3까지에 해당 호제법 : 두 수가 서로 상대방 수를 나누어서 결국 원하는 수를 얻는 알고리즘 알고리즘- 2개의 자연수 a, b에 대해서 a를 b로 나눈 나머지를 r이라 하자 (단, a > b)- a와 b의 최대 공약수는 b와 r의 최대공약수와 같다.- 이 성질에 따라, b를 r로 나눈 나머지 r'를 구하고, 다시 r을 r'로 나눈 나머지를 구하는 과정을 반복- 이때 나머지가 0이 된다면 나누는 수가 a와 b의 최대공약수이다. [알고리즘]- 입력으로 두 수 m, n(m>n)을 입력받는다... 2018. 9. 26.
[C] 내림차순 정렬(버블) [내림차순 정렬(버블)] n개의 수를 입력받고 내림차순으로 정렬하여라. #include int main() { int num, i, j, tmp; int *arr; scanf("%d", &num); arr = (int*)malloc(sizeof(int)*num); for (i = 0; i arr[j - 1]) { tmp = arr[j]; arr[j] = arr[j - 1]; arr[j - 1] = tmp; } } } for (i = 0; i < num; i++) { printf("[%d] ", arr[i]); } p.. 2018. 9. 19.
[C] 최대 공약수 [최대 공약수] 두 수를 입력받고, 두 수의 최대 공약수를 구하여라. #include int main() { int num1, num2, i, div; scanf("%d %d", &num1, &num2); if (num1 < num2) { for (i = 2; i < num1; i++) { if (num1%i == 0 && num2%i == 0) { div = i; } } } else { for (i = 2; i < num1; i++) { if (num1%i == 0 && num2%i == 0) { div = i; } } } printf("%d\n", div); return 0; } 2018. 9. 19.
[C] 1부터 n까지의 합을 출력 [1부터 n까지의 합을 출력] n값을 입력받고 1부터 n까지의 합을 출력하여라. #include int main() { int num, i; int sum = 0; scanf("%d", &num); for (i = 1; i 2018. 9. 19.
[c언어] 메모리 동적할당 #malloc, calloc, realloc [메모리 동적할당] 동적할당 : 프로그램 실행 중 필요한 만큼의 메모리를 할당하는 방식 정적할당 : 프로그램 실행 전 메모리를 할당하는 방식 동적할당을 사용하는 이유- 만약 char name[15] 를 선언하고, 메모리를 12만큼 썻다면 3이라는 크기의 메모리가 낭비되기 때문이다. 또한, 메모리를 19만큼을 사용하고 싶다면 메모리가 초과되므로 name의 크기를 변경해줘야 하는 불편함이 있기 때문에 동적할당을 사용하고 오버플로우의 위험도 있기 때문에 동적할당을 사용한다. 동적할당의 세가지 방법- void *malloc(size_t size) _ size바이트 만큼의 메모리를 힙에서 할당하여 반환- void *calloc(size_t num, size_t size) _ (num*size)바이트 만큼의 메모리.. 2018. 8. 19.
[알고리즘] 에라토스테네스의 체 #c언어 수학에서 에라토스테네스의 체는 소수를 찾는 방법이다. 알고리즘 설명.1. 2부터 소수를 구하고자 하는 구간의 모든 수를 나열한다. 그림에서 회색 사각형으로 두른 수들이 여기에 해당2. 2는 소수이므로 오른쪽에 2를 쓴다. (빨강)3. 자기 자신을 제외한 2의 배수를 모두 지운다.4. 남아있는 수 가운데 3은 소수이므로 오른쪽에 3을 쓴다. (초록)5. 자기 자신을 제외한 3의 배수를 모두 지운다.6. 남아있는 수 가운데 5는 소수이므로 오른쪽에 5를 쓴다. (파랑)7. 자기 자신을 제외한 5의 배수를 모두 지운다8. 위의 과정을 반복하면 구하는 구간의 모든 소수가 남는다. 알고리즘 구현 (c언어) 배열에서 소수인칸에는 1, 소수가 아닌칸에는 0을 넣어 나중에 갯수를 세어 소수의 갯수를 구할것이다. 즉, .. 2018. 8. 17.
[c언어] 포인터의 크기 포인터의 크기포인터의 크기는 운영체제의 bit수에 따라 달라진다.32비트 시스템의 포인터 크기 : 4바이트64비트 시스템의 포인터 크기 : 8바이트즉 32비트의 int*, double*, char* 의 크기는 모두 4바이트이고64비트의 int*, double*, char*의 크기는 모두 8바이트이다. 포인터 크기 원리포인터 = 메모리 위치를 가리키기 위한 주소를 담는 변수즉, 32비트 라면 CPU의 메모리 접근을 위한 주소가 32비트 만큼 가능하기 때문에 포인터도 32비트(4바이트)가 된다.반면, 64비트 라면 CPU의 메모리 접근을 위한 주소가 64비트 만큼 가능하기 때문에 포인터도 64비트(8바이트)가 된다.이러한 원리로 인해서 포인터의 크기는 차이가 난다. (16비트의 컴파일러에서 포인터의 크기는 .. 2018. 8. 13.
[백준 10172] 개 _ c language 다짜고짜 개를 출력하란다.. printf 함수를 이용하여 출력을 하고 \n을 통하여 개행을 하면 될것 같다.또한 |, \, _, / 등 기호들은 이스케이프 문자(\)를 통해 문자열 처리를 해준다. q, p, 0 같은 경우는 안해줘도 된다.#include int main() { printf("\|\\\_\/\|\n\|q p\| \/\}\n\( 0 \)\"\"\"\\\n\|\"\^\"\` \|\n\|\|\_\/\=\\\\\_\_\|"); } 2018. 8. 8.
[책리뷰] 이게 진짜 c 프로그래밍이다 [책리뷰] 이게 진짜 c 프로그래밍이다 (자신감을 복돋아주는 c 프로그래밍 가이드북) - 가격은 2018년 6월 18일 기준 - 이 책은 저번에 리뷰로 올린 책보다 혼자서 공부하기에 더 좋은거 같다. - 다양한 연습문제가 있고, 이 책은 연습문제의 답까지 맨 뒤에 친절하게 나와 있다. - 이 책의 목차가 잘 짜여져있어 순서대로 공부하기 쉽다. - 기초 내용 뿐만 아니라 심화 내용까지 포함되어 있다. 2018. 6. 18.
[책리뷰] 누구나 쉽게 즐기는 C언어 콘서트 [책리뷰] 누구나 쉽게 즐기는 c언어 콘서트 (c언어 콘서트) - 가격은 2018년 6월 4일 기준 - 그림을 많이 사용하여서 지루하지 않으며 쉽게 이해가 된다. - 개념과 원리에 대해 자세히 설명되어 있어 그림과 함께 자세한 설명이 합쳐지니 다른 책을 볼때 보다 더 쉽게 이해 했던 것 같다. - 문제가 상당히 다양하며 괜찮은 문제들이 있었다. 또한 LAB 섹션같은 경우는 조금더 생각을 한다면 어려운 문제가 될 수도 있다. - 문제가 괜찮지만 해설이 없어 정답을 확인을 할 수가 없다.. - windows.h 같은 다른 책에서는 구경도 못했던 헤더파일을 추가하여 도형을 그리기도 한다. - 컬러를 사용하여서 전공책을 읽는 느낌이 들지 않았다. - 책에 수정해야 될 부분이 있다.. 2018. 6. 4.
[백준 2439] 별찍기 - 2 _ c language 별찍기 - 1 과 비슷하게 이중 for문을 이용하여 풀면된다.#include int main() { int i, j, num; scanf("%d", &num); for (i = 0; i < num; i++) { for (j = 0; j < num; j++) { if (num - 1 - i 2018. 5. 31.