목록개발 공부/C (47)
EASY7
break < return < exit 으로 갈수록 범위가 커짐 1. break -switch문 / 반복문에서 중괄호를 빠져나오게 함. 2. return -함수에서 빠져나오게 함. -그 아래 코드는 실행하지 않음. 3.exit -main함수가 아닌 곳에서도 프로그램을 종료시킴 (그렇군!) -main함수에서 return 0한 것과 동일 -exit(0) 정상적인 종료 exit(1) 비정상적인 종료 (에러가 발생함을 보여줌)
c언어에서는 더 정확한 printf와 scanf를 하기 위해서 %d, %lf같이 형식지정자를 지정해줄 수 있다. 형식지정자 형식 약자 d int decimal number / 10진수 o int octal number / 8진수 (printf 할 때 '0'을 표기하지 않음. x 또는 X int hexadecimal number / 16진수(printf하면 '0x'를 따로 표기하지 않음.) X를 사용하면 ABCDEF 대문자 사용함. ld long decimal number / 10진수 u unsigned decimal number lu unsigned long decimal number c char single character s char pointer string f float g float e flo..
c언어에서 다항식을 표현하는 것에는 두가지 방법이 있다. poly_add1은 배열을 이용해 0차부터 최고차항까지 다 표현한다. 연산이 편리한 장점이 있다. poly_add2는 0이 아닌 차수만 표현하기에 메모리 낭비가 적다. #include #define MAX(a,b) (((a)>(b))?(a):(b)) #define MAX_DEGREE 10 typedef struct { int degree; int coef[MAX_DEGREE]; } polynomial; polynomial poly_add1(polynomial A, polynomial B) { int i; polynomial C; int Apos = 0, Bpos = 0, Cpos = 0; int degree_a = A.degree, degree_b..
c언어에서 외부 파일을 불러오는 방법이다. int main() { FILE *fp; char sentence[30]; if ((fp = fopen("input.txt", "r")) == NULL) { fprintf(stderr, "fileOpenError"); exit(1); } while (fgets(sentence, sizeof(sentence), fp) != NULL) { printf("%s\n", sentence); } }
merge sort #include #include void display(int* A, int n); void merge(int A[], int p, int q, int r); void mergeSort(int A[], int p, int r); void copyArray(int *A, int *temp, int p, int r); int main() { int n; int *A; int i; printf("배열의 길이를 입력하세요:"); scanf("%d", &n); A = (int*)malloc(sizeof(int) * n); for (i = 0; i < n; i++) { printf("%d번째 배열의 원소를 입력하세요:", i + 1); scanf("%d", &A[i]); } printf("정렬 ..
m[0][0]에서 m[3][3]까지 가는데 합이 가장 큰 길은?? M배열에 자기 까지의 최고 합을 메모한다. m배열 6 7 12 5 5 3 11 18 7 17 3 3 8 10 14 9 #include #include int matrixPath(int m[][4], int r, int c, int i, int j, int M[][4]) { if (i == 0 && j == 0) { printf("m[%d][%d] :%d \n", i, j, m[i][j]); return m[i][j]; } else if (i == 0) { if (M[0][j] == 0) M[0][j] = matrixPath(m, r, c, 0, j - 1, M) + m[i][j]; printf("M[%d][%d] :%d \n", i, j,..
순환을 이용한 피보나치 수열 같은 계산을 또 하지 않기 위해 F배열에 값을 메모한다. #include #include int fib(int n, int* F) { if (n == 1 || n == 2) return 1; if (F[n - 1] == 0) F[n - 1] = fib(n - 1, F); if (F[n - 2] == 0) F[n - 2] = fib(n - 2, F); printf("%d ", F[n - 1] + F[n - 2]); return F[n - 1] + F[n - 2]; } int main(void) { int n, i; int *F; printf("몇 번째까지의 피보나치 수열:"); scanf("%d", &n); //fn F = (int*)malloc(sizeof(int)*(n + ..
순환을 이용한 조합 m 배열에 값을 메모한다. #include int comb(int n, int r, int *m); int main() { int c; int i; int n, r; int *m; printf("enter number n and r (nCr)\n"); printf("n:"); scanf("%d", &n); printf("r:"); scanf("%d", &r); m = (int*)malloc(sizeof(int) * (r + 1)); for (i = 0; i