본문 바로가기

c언어

[std::vector] 원하는 값 지우기 #include #include #include #include using namespace std; struct tagRand { int nCount; CString strRand; }; int main( ) { srand( (unsigned)time(NULL) ); int nInput(1); vector vecNum; //데이터 입력 for( int i=0 ; i 더보기
[C언어] 위경도 좌표계 거리 구하기 C언어나 C++에서 사용할 수 있는 함수입니다. 두 지점의 위경도 값을 정해서 함수에 대입하면 Meter로 값을 반환합니다. km로 값을 받고 싶으면 dDistance*=1000; 부분 주석치면 됩니다. double GetDistance( tagPT pt1, tagPT pt2 ) { int radius = 6371; double dLat = rad( (pt2.y-pt1.y) ); double dLon = rad( (pt2.x-pt1.x) ); pt1.y = rad( pt1.y ); pt2.y = rad( pt2.y ); double a = sin(dLat⁄2) * sin(dLat⁄2) + sin(dLon⁄2) * sin(dLon⁄2) * cos(pt1.y) * cos(pt2.y); double c = 2.. 더보기
[정보처리기사] 마방진 - C언어 구현 마방진이란 정보처리기사 배열 마방진(Magic Square) 만들기 입니다. #include //마방진의 크기를 결정 //홀수로 입력하되, 19미만이 보기 좋음 //7이상부터 19까지는 대각선 "우상좌하" 의 합이 다른 합과 다름 #define MAX 19 int main() { //좌표 0, 2부터 시작 int i(0), j(2), k(1); int arr[MAX][MAX]; for(k=1 ; k (MAX-1) )j = 0; } } //출력 for(i=0 ; i 더보기
[정보처리기사] 달팽이 만들기 - C언어 구현 정보처리기사 배열 달팽이 만들기 입니다. #include //달팽이의 크기를 지정 //홀수를 입력하되 19미만이 보기 좋음 #define MAX 7 int main() { int i(0), j(-1), k(0), p, n(MAX);//i=행, j=열, k=대입값 int sw(1); int arr[MAX][MAX]={0}; //달팽이 모양으로 대입 while( n>0 ) { //열 증가 및 감소 for( p=0 ; p 더보기
[정보처리기사] 다이아몬드 만들기 - C언어 구현 정보처리기사 배열 다이아몬드 만들기 입니다. #include //다이아몬드의 크기를 지정 //"홀수"만 입력하되 19미만이 보기 좋음 #define MAX 13 int main() { int row, col, k(0);//row=행, col=열 int begin(0), end(0); int center=MAX⁄2; int arr[MAX][MAX]={0}; //대입 for( row=0 ; row 더보기
[정보처리기사] 모래시계 만들기 - C언어 구현 정보처리기사 배열 모래시계 만들기 입니다. #include //모래시계의 크기를 지정 //"홀수"만 입력하되 19미만이 보기 좋음 #define MAX 13 int main() { int row, col, k(0);//row=행, col=열 int begin(0), end(0); int center=MAX⁄2; int arr[MAX][MAX]={0}; //상하로 나누어 모래시계 모양으로 대입 for(row=0 ; row 더보기
[정보처리기사] 대각선 채우기 - C언어 구현 정보처리기사 배열 대각선 채우기 입니다. #include //행, 열의 크기를 지정, 10미만일때 보기 편함. #define MAX 10 int main() { int arr[MAX][MAX]={0}; int i, j, k(0); int spin; //대각선으로 대입 for(spin=2 ; spin 더보기
[정보처리기사] ㄹ자 채우기 - C언어 구현 //ㄹ자 채우기 #include #define _ROW 9 #define _COL 7 int main() { int arr[_ROW][_COL]; int i, j; int cnt(0); for(i=0 ; i 더보기
[정보처리기사] 5행 5열 직각삼각형 - C언어 구현 //5행 5열 직각삼각형 #include int main() { int i, j, k(0); int arr[5][5]; for( i=0 ; i=0 ; j-- ) { ++k; arr[i][j] = k; } } for( i=0 ; i 더보기
[정보처리기사] 석차 구하기 - C언어 구현 #include #define MAX 5 int main() { int i, j; int jumsu[MAX]; int rank[MAX]; for(i=0 ; i 더보기
[정보처리기사] 이분 검색 - C언어 구현 #include #define MAX 10 int main() { int arr[MAX]; int i, j=1; int HIGH, LOW, MID; //배열 공간 초기화 for(i=0 ; i 더보기
[정보처리기사] 삽입 정렬 - C언어 구현 #include void insertion_sort( int *nArr, int nCount ) { int i(0), j(0); int key = 0; for( i=1 ; i=0 ; --j ) { if( nArr[j]>key ) { nArr[j+1] = nArr[j]; } else { break; } } nArr[j+1] = key; } int a = 9; } int main( ) { int nArr[] = { 7, 3, 8, 0, 2, 1, 5, 13, 6 }; int nCount = sizeof(nArr)/sizeof(*nArr); insertion_sort( nArr, nCount ); for( int i=0 ; i 더보기
[정보처리기사] 버블 정렬 - C언어 구현 #include #define MAX 10 int main() { int arr[MAX]; int i, j; int temp; printf("음수를 입력하면 종료\n\n"); while(1) { //입력 for(i=0 ; i 더보기
[정보처리기사] 가까운 수 구하기 - C언어 구현 #include #define MAX 5 int main() { int arr[MAX]; int i(0); int inputNum, min(99999999); int d, k(0); //입력 부분 for(i=0 ; i 더보기
[정보처리기사] 배수의 개수와 합 - C언어 구현 //배수의 수와 합을 구함 #include int main() { printf("0을 입력하면 종료\n\n"); while(1) { int sum(0), cnt(0), i; int MUL, MAX; printf("구하려는 배수를 입력 : "); scanf("%d", &MUL); printf("몇까지 구할거임? : "); scanf("%d", &MAX); //0을 입력하면 종료 if(MUL == 0 || MAX == 0) { printf("0을 입력하여 종료함"); return 0; } //MAX 값이 구하려는 배수보다 크면 실행 if(MAX > MUL) { for( i=1 ; i MAX) { printf("ㅡㅡ"); } printf("\n\n\n"); } return 0; } 더보기
[정보처리기사] 약수 구하기 - C언어 구현 #include #include using namespace std; int main() { int nInput; printf("0을 입력하면 종료\n\n"); while(1) { vector vectorArr; printf("정수를 입력하세요 : "); scanf("%d", &nInput); if(nInput == 0) { return 0; } //약수 구하는 부분, 입력 값에서 /2 하므로써 효율적으로 변함. for( int i=1 ; i 더보기
[정보처리기사] 소인수 분해 - C언어 구현 0을 입력할 때까지 소인수를 구함. #include int main( ) { int i, j; int input, origin; int arr[100]; printf( "0 이하를 입력하면 종료\n\n" ); while( 1 ) { printf( "수를 입력하세요 : " ); scanf( "%d", &input ); if( input 1 ) { if( input%i == 0 ) { input = input/i; arr[j] = i; ++j; } if( input%i != 0 )i++; } //출력 if( origin != 1 ) { printf( "소인수분해 결과 : " ); for( i=0 ; i 더보기
[정보처리기사] 최대 공약수(gcm), 최소공배수(lcm) - C언어 구현 최대 공양수 gcm의 약자는 Greatest Common Measure 최소 공배수 lcm의 약자는 Least Common Multiple #include int gcd( int a, int b ); int lcm( int a, int b ); int main( ) { int su1, su2; printf( "0을 입력하면 종료\n\n" ); while( 1 ) { printf( "두개의 정수 입력 : " ); scanf( "%d%d", &su1, &su2 ); if( su1 == 0 || su2 ==0 )return 0; printf( "GCD( 최대공약수 ): %d\n", gcd( su1, su2 ) ); printf( "LCM( 최소공배수 ): %d\n\n", lcm( su1, su2 ) ); } .. 더보기
[정보처리기사] 소수의 합 - C언어 구현 - 에라토스테네스의 체를 이용한 소수의 합 구하기 1. 에라토스테네스의 체란 2. 에라토스테네스의 체란 에라토스테네스의 체를 이용한 문제는 프로젝트 오일러 사이트에 올라온 문제이기도 하며, 에라토스테네스의 체를 이용 안하고 풀었을 때와 이용 했을 때의 시간 차이는 엄청납니다. 위의 링크 중 위키피디아 내용을 참고해서 소스를 만들었고, 소수 목록을 파일로 출력하여 따로 볼 수 있게 만들었습니다. 파일 저장 경로는 C:\prime.txt 인데, 관리자 계정이 아니거나 UAC가 켜져 있으면 실행하다 오류가 저장이 안되는데, 그럴때는 C드라이브 말고 D드라이브 등으로 경로를 바꿔주고 하면 됩니다. 암튼 에라토스테네스의 체의 핵심은 소수를 찾는게 아니라 소수가 아닌 걸 체로 걸러내고 남은 걸 찾는것입니다. #define MAX2000000 #include int.. 더보기
[정보처리기사] 소수의 합 - C언어 구현 일반적인 방법으로 소수의 합을 구하는 코드인데, 100만이나 200만 범위 내의 소수의 합을 구하려면 너무 느려요 ㅠㅠ 큰 범위 내의 소수의 합을 빠르게 구하고 싶으면 에라토스테네스의 체를 이용하면 됩니다. //1부터 입력한 수까지 소수의 합 #include int prime( int a ); int main( ) { int input; int i; int sum; printf( "0을 입력하면 종료\n\n" ); while(1) { sum = 0; //입력 printf("양의 정수를 입력 : "); scanf( "%d", &input ); if( input==0 )return 0; //입력한 수까지 반복하고, 소수가 리턴되면서 누적 for( i=2 ; i 더보기