반응형

C_C++ 328

(C언어) 입력 버퍼 비우기: rewind fflush

C언어 프로그램에서 %d, %c 등을 계속 반복해서 입력 받을 때 엔터 문자 때문에 입력을 받지 않고 건너 띄는 경우가 있습니다. %c가 이전에 입력한 엔터 문자를 받아서 넘겨 버리기 때문입니다. 몇 가지 방법으로 해결할 수 있습니다. 1. rewind rewind(stdin); // 입력 버퍼를 비운다. %c 를 이용해서 입력 받은 문장 바로 앞에 추가합니다. rewind(stdin); scanf("%c", &c; 2. fflush fflush(stdin); // 입력 버퍼를 비운다. fflush() 함수는 표준이 아닙니다. 리눅스나 DevC++에서는 잘 동작하지만 Visual Studio에서는 사용할 수 없습니다. 3. while(getchar()!='/n'); // 주의: 맨 뒤에 세미콜론(;)문자..

C_C++ 2022.11.20

(C언어) strtok: 문자열 분리

#include char *strtok(char *s1, const char *s2); strcok 함수는 문자열 s1을 분리 문자열 s2를 이용해서 다음 토큰을 찾습니다. s1에서 발결된 다음 토큰의 포인터를 반환합니다. 더 이상 토큰을 찾을 수 없으면 NULL을 반환합니다. strtok 함수의 첫 번째 호출은 s1에 있는 첫 번째 토큰의 포인터를 반환하고 반환된 토큰 다음에 NULL을 써 넣습니다. 첫 번째 인수로 NULL을 사용한 strtok 함수의 두 번째 호출은 토큰 다음에 나오는 문자의 포인터를 반환합니다. 예제 #define _CRT_SECURE_NO_WARNINGS // Visual Studio #include #include int main() { char string[] = "It is..

C_C++ 2022.11.19

(C/C++) 병합정렬 Merge Sort

#병합 #정렬 #머지소트 #C언어 #배열 #Array 병합정렬(Merge Sort) 이미 정렬되어 있는 2개 이상의 부분 집합들을 크기순으로 한 개로 합치는 것을 말합니다. C언어 코드 #include #define NA 10 #define NB 5 #define NC (NA+NB) int main() { int a[NA] = { 11,22,33,44,55,66,77,88,87,88 }; int b[NB] = { 10,30,35,78,90 }; int c[NC]; int i, j, p; i = j = p = 0; while (i < NA && j < NB) { // a, b 둘 중 한 개가 먼저 끝날때까지 반복 if (a[i]

(C언어) 이진 검색(binary search)

#이진검색 #바이너리서치 #이진탐색 #검색 #탐색 #2진검색 이진 검색(binary search)은 오름 차순으로 정렬되어 있는 데이터를 2등분하여, 앞쪽에 있는지 뒤쪽에 있는지 검색해 나가는 방법입니다. 이진검색 전제조건: - 크기순으로 반드시 정렬되어 있을 것 *. 찾는 값이 47일 때 1. 데이터가 10개 일때(0~9번) C언어: 이진 검색 #define _CRT_SECURE_NO_WARNINGS // Visual Studio #include #define N 10 int main() { int a[N] = { 1, 5, 8, 15, 30, 45, 47, 55, 80, 99 }; int key, low, high, mid; int flag = 0; printf("탐색할 데이터는(1~100)? ");..

(C언어) 원주율 파이 구하기 3.1415926535897

#원주율 #3.14159 #1000자리 #파이 #원주율를 구하는 C언어 코드 #include void ladd(short*, short*, short*); void lsub(short*, short*, short*); void ldiv(short*, short, short*); void printresult(short*); #define L 1000 /* 자리수 */ #define L1 ((L/4)+1) #define L2 (L1+1) #define N (short)(L/1.39794+1) int main(void) { static short s[L2 + 2], w[L2 + 2], v[L2 + 2], q[L2 + 2]; short k; for (k = 0; k = 0; i--) { c[i] = a[i] ..

C_C++ 2022.11.17

(기초 알고리즘) 최대공약수 구하기: 유클리드 호제법

#C언어 #재귀호출 #최대공약수 #유클리드호제법 C언어: 유클리드 호제법을 이용한 최대공약수 구하기 1. #define _CRT_SECURE_NO_WARNINGS #include int main() { int a,b, m,n; printf("두 정수 입력: "); scanf("%d %d",&a,&b); m=a; n=b; while (m!=n){ if (m>n) m=m-n; else n=n-m; } printf("%d, %d의 최대공약수 = %d\n",a, b, m); return 0; } 2. #define _CRT_SECURE_NO_WARNINGS #include int gcd(int a, int b) { int c; while (b) { c = a % b; a = b; b = c; } return a..

(C언어) 오늘의 명언 출력하기

#명언 #격언 #날짜 #매일 날짜별로 오늘의 명언을 출력하는 C언어 프로그램을 만들었습니다. #define _CRT_SECURE_NO_WARNINGS #include #include int main() { char* saying[] = { "삶이 있는 한 희망은 있다 - 키케로", "산다는것 그것은 치열한 전투이다. - 로망로랑", "하루에 3시간을 걸으면 7년 후에 지구를 한바퀴 돌 수 있다. - 사무엘존슨", "언제나 현재에 집중할수 있다면 행복할것이다. - 파울로 코엘료", "진정으로 웃으려면 고통을 참아야하며 , 나아가 고통을 즐길 줄 알아야 해 - 찰리 채플린", "직업에서 행복을 찾아라.아니면 행복이 무엇인지 절대 모를 것이다 - 엘버트 허버드", "신은 용기있는자를 결코 버리지 않는다 - 켄..

C_C++ 2022.11.15
반응형