본문 바로가기

Study

(63)
윤성우님의 C 프로그래밍 도전프로그래밍 TWO [3~4] 도전3] #include #defineMAX10 int main(void) { int arr[MAX]; int num, k, i = 0, j = 9; for(k = 0; k < MAX; k++) { printf("Input Number : "); scanf("%d", &num); if(num % 2 != 0) arr[i++] = num; else arr[j--] = num; } printf("------------------\n"); for(i = 0; i < MAX; i++) printf("%d\n", arr[i]); return 0; } 도전4] #include int flag; void palindrome(char* str, int size, int i); int main(void) { char s..
윤성우님의 C 프로그래밍 도전프로그래밍 TWO [1~2] 도전1] #include void odd_number(int* arr, int size); void even_number(int* arr, int size); int main(void) { int arr[10]; int i, size = sizeof(arr) / sizeof(int); for(i = 0; i < size; i++) { printf("Input %dst arr value : ", i+1); scanf("%d", &arr[i]); } odd_number(arr, size); even_number(arr, size); return 0; } void odd_number(int* arr, int size) { int i; printf("Odd Number : \n"); for(i = 0; i < ..
윤성우님의 C 프로그래밍 연습문제 : 14-1 문제1] - Call-By-Value #include int Square(int a); int main(void) { int a; printf("Input integer : "); scanf("%d", &a); a = Square(a); printf("%d", a); return 0; } int Square(int a) { return a*a; } - Call-By-Reference #include void Square(int* a); int main(void) { int a; printf("Input integer : "); scanf("%d", &a); Square(&a); printf("%d", a); return 0; } void Square(int* a) { *a = (*a) * (*a); } ..
C에서 배열이름의 정체는?? #include int main() { int a[2] = {1, 2}; printf("%d %d %d", a, &a[0], &a); return 0; } 위의 결과를 보면 3가지 값 모두가 똑같다. 배열이름은 배열의 첫번째 인덱스의 주소값을 가지니 a == &a[0]는 당연히 맞는 말이다. 하지만 a 라는 값(즉 배열의 주소가 저장되는 공간) 자체도 어딘가 메모리 공간에 할당될테고 (주소값을 저장하는 메모리공간 = 포인터) 다시 말해 &a 를 출력했을시 어딘가 다른 메모리 주소가 출력되야 하는데 그렇질 않다. 게다가 sizeof 연산을 해보면 배열이름의 저장 공간은 포인터 크기가 아닌 배열 전체의 크기가 나오는데 이걸 어떻게 이해해야 하는지 -_-;; 배열이름은 배열의 크기 정보까지 저장하고 있는 포인..
윤성우님의 C 프로그래밍 연습문제 : 13-1 문제1] #include int main() { int i; int arr[] = {1, 2, 3, 4, 5}; int* p = arr; for(i = 0; i < 5; i++) { *(p+i) += 2; printf("%dst index = %d\n", i, *(p+i)); } return 0; } 문제2] #include int main(void) { int i, tmp; int arr[] = {1, 2, 3, 4, 5}; int* p = arr; int size = sizeof(arr) / sizeof(int); for(i = 0; i < size/2; i++) { tmp = *(p + (size-i-1)); *(p + (size-i-1)) = *(p + i); *(p + i) = tmp; } fo..
윤성우님의 C 프로그래밍 연습문제 : 12-1 문제2] #include int main(void) { int a = 10; int* pa = &a; (*pa)++; printf("int = %d\n", a); char b = 'a'; char* pb = &b; (*pb)++; printf("char = %c\n", b); float c = 1.300001; float* pc = &c; (*pc)++; printf("float = %f\n", c); double d = 0.209; double* pd = &d; (*pd)++; printf("double = %lf\n", d); return 0; } 문제3] #include int main(void) { int a = 5, b = 10; int* pa = &a, * pb = &b; int* tmp; (..
윤성우님의 C 프로그래밍 연습문제 : 11-2 문제1] #include int main(void) { int i = 0; char str[100]; printf("Input string : "); scanf("%s", str); while(str[i] != '\0') i++; printf("String length is %d", i); return 0; } 문제2] #include int main(void) { int len = 0, j; char tmp; char str[100]; printf("Input string : "); scanf("%s", str); while(str[len] != '\0') len++; for(j = 0; j
윤성우님의 C 프로그래밍 연습문제 : 11-1 문제1] #include int main(void) { int i, total; int sm[5]; for(i = 0; i < 5; i++) { printf("how many peoples live in %dth floor?\n : ", i+1); scanf("%d", &sm[i]); } total = sm[0] + sm[1] + sm[2] + sm[3] + sm[4]; printf("total = %d\n", total); return 0; } 문제2] #include int main(void) { int n = 0, i; int multi[9]; printf("input number : "); scanf("%d", &n); for(i = 0; i < 9; i++) { multi[i] = n * (i+..