코 드 ¶
~cpp #include <stdio.h> int search_middleNum(int *, int *, int *); void changeXY(int *, int *); void main() { int a, b, c, middleNum; while(1){ printf("멈추려면 '-999 0 0' 입력\n"); printf("비교할 A, B, C 값을 차례로 입력 : "); scanf("%d %d %d", &a, &b, &c); if(a == -999){ break; } middleNum = search_middleNum(&a, &b, &c); printf("중위수 = %d", middleNum); } } int search_middleNum(int *a, int *b, int *c) { int middle; if(*a >= *b){changeXY(a, b);}; if(*a >= *c){changeXY(a, c);}; if(*b >= *c){changeXY(b, c);}; middle = *b; return middle; } void changeXY(int *x, int *y) { int temp; temp = *x; *x = *y; *y = temp; }
변수테이블 ¶
내가만든 이 프로그램에서 변수 테이블을 만들어 보면.
과정 | a | b | c |
. | 45 | 14 | 38 |
if(*a >= *b){changeXY(a, b);} | 14 | 45 | 38 |
if(*a >= *c){changeXY(a, c);} | 14 | 45 | 38 |
if(*b >= *c){changeXY(b, c);} | 14 | 38 | 45 |
중간수 *b를 출력한다.
나한테 할 말 ¶
음..
A
B
그리고 int search_middleNum(int *a, int *b, int *c) 이함수는 구지 포인터로 값을 넘겨받을 필요는 없지 않나..
그냥 넘겨 받아도 문제는 없을 것 같은데..ㅎㅎㅎ 짜기 편하자너..ㅎㅎ 문제도 줄고..^^
음.. 뭐 단순한 내생각이니 특별히 신경쓰지 말라고~ 집에서 할일없어서 하는 소리니..^^ - 조현태
A
~cpp middleNum = search_middleNum(&a, &b, &c); printf("중위수 = %d", middleNum);여기를
B
~cpp printf("중위수 = %d", search_middleNum(&a, &b, &c));이렇게 바꾸는게 변수도 안낭비하고 좋을 듯 한데..^^
그리고 int search_middleNum(int *a, int *b, int *c) 이함수는 구지 포인터로 값을 넘겨받을 필요는 없지 않나..
그냥 넘겨 받아도 문제는 없을 것 같은데..ㅎㅎㅎ 짜기 편하자너..ㅎㅎ 문제도 줄고..^^
음.. 뭐 단순한 내생각이니 특별히 신경쓰지 말라고~ 집에서 할일없어서 하는 소리니..^^ - 조현태
짜식 내 코드에 관심이 많아 ㅋㅋㅋㅋ 내 코드 좋아해? 아님 싫어하는건가?^^ ㅠㅠ -허아영
두 친구가 젤 활발하군요. A 코드를 B로 바꾸면 중간 변수의 메모리도 낭비되지 않고, 좀더 최적화에 다가간 코드가 됩니다. 하지만 A를 B로 바꾸면 가독성이 떨어집니다. 상황에 따라 다르겠지만 running time에 별 차이가 없다라고 본다면, 저라면 가독성을 택할 것 같습니다. -- 보창어떻게 할까 했는데 걍 소트 하믄 되는구나 ㄱ-;;;; 괜히 고민했었다;; - 태훈