인파

You Can Become A

늦게 시작해도 누구든지 노력하면 개발자가 될수 있어요 !

공부한 내용을 정리합니다
Language/C

[C] 💾 C코딩 - 행렬의 덧셈 구현하기

C언어의 행렬 덧셈을 구현해 보았다. 밑의 ptf() 함수는 그냥 이쁘게 출력위해 만든 바둑판표 만들기 함수이니 보지 않아도 된다. #include #define N 3 void ptf(int x[N][N]); int main() { int A[N][N]={2,3,4,3,4,5,4,5,6}, B[N][N]={1,0,1,3,2,1,5,4,3}, C[N][N]; int i,j; puts(" A행렬"); ptf(A); puts("\n B행렬"); ptf(B); puts("\n C행렬"); for(i=0;i

category_image
인파_
2021.09.23
(0)
Language/C

[C] 💾 버블정렬,교환정렬,선택정렬,삽입정렬

#include #include #include #define N 5 #define ESC 0x1b void swap(int *x,int *y); void bubble_sort(int *x); void exchange_sort(int *x); void select_sort(int *x); void insert_sort(int *x); int main(void) { int a[N]={3,4,5,6,1}; char hit; int i,j; do { printf("┌──────────────────┐\n"); printf("│ [ 다양한 방식의 정렬 모음 ] │\n"); printf("│ │\n"); printf("│ ※숫자 키를 눌러 선택하세요. │\n"); printf("│ │\n"); printf("│ ..

category_image
인파_
2021.09.23
(0)
Language/C

[C] 💾 배열포인터 정리

1차원 배열 -> *(a+1) = a[1] 2차원 배열 -> *(*(a+1)+0) = a[1][0] 3차원 배열 -> *(*(*(a+1)+0)+3) = a[1][0][3] ​ 문자열배열 -> char ch[10] = "language"; char * str = "language"; ch = "dictionaty"; //오류!!!! str = "dictionaty"; //"language"문자열이 저장된 주소를 새로 갱신해서 저장하는 것이라 가능하다. strcpy(ch, "dictionaty"); //문자열 함수로 정상 체인지 strcpy(str, "dictionaty"); //오류!!! tip) 포인터 변수가 참조하는 값을 바꾸고 싶은 경우 숫자 : *str = 5 문자 : str = "안녕" int m..

category_image
인파_
2021.09.23
(0)
Language/C

[C] 💾 사용자 입출력 (구조체)

#include #include #include #define N 100 struct person { char name[15]; char gender[3]; int age; }; void sub1(struct person *x); //반복 출력 함수 void select_sort(struct person *x2); //이름 오름차순 선택 정렬 함수 void ptf(struct person x3[N]); //결과 출력 함수 static int count; int main() { struct person input[N]; puts("최대 100명의 사용자 정보를 입력받고 출력합니다."); sub1(input); select_sort(input); ptf(input); } void sub1(struct per..

category_image
인파_
2021.09.23
(0)
Language/C

[C] 💾 도서 목록 입력하기 (동적할당 연습)

C언어 - 도서 목록 입력하기 동적할당을 이용하여 도서 목록을 입력하는 프로그램을 만들어봤다. 본래라면, 일정한 배열의 크기를 정하고 그안에 도서 목록 정보를 넣는 식이지만, 언제 어디서 도서가 몇권 들어올지 모르니 미리 배열의 공간 크기를 정해놓는 짓은 낭비이다. 따라서 그때그때 필요할때 마다 공간을 할당해주는 동적할당 기법을 이용하여 코드를 구현해보았다. #include #include typedef struct book { int year; char title[12]; }BOOK; int main() { BOOK *page; int n,i; do { printf("\n정보를 입력할 도서 권수 : "); scanf("%d", &n); if(ntitle = (*(page+i)).title = page[..

category_image
인파_
2021.09.23
(0)
Language/C

[C] 💾 동적할당을 통한 문자열 공간 최적화

다음은 동적 할당을 통한 1차원 문자열 배열 공간 최적화 방법이다. 구조체 에서 사용하면 더더욱 좋다. #include #include int main(void) { char *title; int i,tmp[101];//tmp라는 임시 대피소를 만든다. 원소수가 커서 오히려 낭비처럼 보이지만 입력하는 도서수가 많을 수록 오히려 전체적으로 공간 절약이 된다. for(i=0;/*i < 갯수*/;i++) { gets(tmp);//도서 입력 title이 아닌 tmp에 입력 받는다. title에 입력 받으면 에러 title = (char*)malloc(sizeof(char) * (strlen(tmp) + 1));//tmp에 저장된 문자열길이 + 널문자 로 공간의 크기를 확정 짓는다. strcpy(title, tm..

category_image
인파_
2021.09.23
(0)
Language/C

[C] 💾 C언어 - 약수 구하기 구현코드

C언어로 약수 구하기 로직을 구현해보았다. 밑에 코드를 참고하여 연습해보자. 그대로 긁어 실행하면 된다. #include int main() { int num,i,sum=0,count=0; printf("약수를 구할 임의의 정수 입력 : "); scanf("%d", &num); printf("\n약수 : "); for(i=1;i

category_image
인파_
2021.09.23
(0)
Language/C

[C] 💾 경우의 수 구하기2

문제 마당에 있는 오리와 개의 다리의 수가 모두 20개이다. 오리와 개는 각가 몇마리인지 모든 경우의 수를 출력하라. #include #define N 20 int main() { int i,j,sum=0,dog=0,duck=0,dog_=0,duck_=0,count=0,tr1=0,tr2=0; printf("[ 개와 오리의 다리의 수 합이 %d개 인 경우의 수 ]\n\n", N); do { for(i=tr1;i

category_image
인파_
2021.09.23
(0)
Language/C

[C] 💾 경우의 수 구하기

문제 ​2g, 3g, 5g의 추가 각각 10개 씩 있다. 이때 추의 합 81g이 되는 모든 경우의 수를 구하여라 ​이전에는 높은 값을 입력하면 문제 없었지만 낮은 값을 입력하면 중복된 경우의 수가 다량 출력되는 문제가 있었다. ​ 다시 코딩을 점검한 결과 아주 간단한 조건식을 추가해주면 해결될 일 이었다. #include #include int main() { int g2 = 0, g3 = 0, g5 = 0, g2_ = 0, g3_ = 0, g5_ = 0, i, tr2 = 0, tr3 = 0, sum = 0, count = 0, n; printf("2g, 3g, 5g 추가 각각 10개씩 있습니다.\n합이 몇인 경우의 수를 구하실 것입니까? : "); scanf("%d", & n); //문제는 81g만 이..

category_image
인파_
2021.09.23
(0)
Language/C

[C] 💾 학생 답안 및 석차 출력

C언어 학생 답안 및 석차 출력 배열을 이용한 학생 답안 및 점수 출력을 간단하게나마 구현해 보았다. #include #include #define N 10 #define STUDENT 10 /* 객관식 10문제가 있고 정답은 1,3,2,3,4,2,3,1,4,2 다 배열에 10명의 학생의 답안을 적고 해답을 가려내고 석차를 내시오 */ int main(void) { int paper[STUDENT][N]={{1,3,2,3,4,2,3,1,4,3},{1,2,2,2,4,2,3,1,4,2},{4,3,2,3,4,2,3,1,4,2},{1,3,2,2,4,3,3,4,4,2}, {1,3,2,3,4,2,3,3,4,1},{1,1,2,4,4,3,3,2,4,3},{1,3,2,3,4,2,3,1,4,2},{1,3,2,3,3,2,3..

category_image
인파_
2021.09.23
(0)
Language/C

[C] 💾 달팽이 정렬 알고리즘

달팽이 배열 달팽이 배열은 주어진 수(n)에 맞춰 nxn의 이중 배열을 생성하여서, 시계 방향으로 숫자가 늘어나는 배열이다. 이 시계 방향이 마치 달팽이 껍질 형태기 때문에 그리 부르는 듯 하다. 아래의 사진처럼 4x4 배열을 보면 더 이해가 갈 것이다. 예제 1) #include #include #include #include "matrix_ptf.h" #define N 5 void ptf(int a[N][N]); void snail_sort(int a[N][N]); int main() { clock_t start,end; start = clock(); int arr[N][N]; int i,j; int (*p1)[N]=arr; srand(time(NULL)); //중복되지 않는 난수 1~ N*N 까지 ..

category_image
인파_
2021.09.23
(0)
Language/C

[C] 💾 구조체로 전화번호부 만들기

#include #include #include #include #include struct directory { char *name; char *number; }; typedef struct directory DIREC; int main() { DIREC arr[50]={{"나태희","010-5228-7889"},{"유현빈","010-5211-1472"},{"나원빈","010-1235-8765"}, {"문건영","010-8282-8282"},{"소지법","010-5165-3483"},NULL}; char tmp[50], hit; int i; do { puts("\t전화번호 관리"); puts("1. 보기 2. 등록 3. 삭제 4. 끝내기"); printf("\t메뉴 선택 [ ]\b\b"); fflush..

category_image
인파_
2021.09.23
(0)