More actions
소 감
코 드
#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
middleNum = search_middleNum(&a, &b, &c);
printf("중위수 = %d", middleNum);
여기를 B
printf("중위수 = %d", search_middleNum(&a, &b, &c));
이렇게 바꾸는게 변수도 안낭비하고 좋을 듯 한데..^^ 그리고 int search_middleNum(int *a, int *b, int *c) 이함수는 구지 포인터로 값을 넘겨받을 필요는 없지 않나.. 그냥 넘겨 받아도 문제는 없을 것 같은데..ㅎㅎㅎ 짜기 편하자너..ㅎㅎ 문제도 줄고..^^ 음.. 뭐 단순한 내생각이니 특별히 신경쓰지 말라고~ 집에서 할일없어서 하는 소리니..^^ - 조현태
짜식 내 코드에 관심이 많아 ㅋㅋㅋㅋ 내 코드 좋아해? 아님 싫어하는건가?^^ ㅠㅠ -허아영 └ㅎㅎㅎㅎㅎ 관심이 많아 보이나?? ㅎㅎ 자제해야겠군.ㅎㅎ 단지 할일이 없어서 보다보니 눈에띄었다구..^^ 난 이쁜 아가씨 소스아니면 별로 관심없음!! CC는 버렷..쳇쳇..ㅎㅎ 헐.. 이쁜아가씨가 아니라 미안하군! ㅋ 하핫 씨씨 부럽냐~ ㅋ. 아 우리 너무 잡담 잘해 ㅋㅋ 미안해 자제할게 ㅋ - 허아영 └ㅎㅎ 제아무리 이쁜 아가씨도 임자있으면 안 이쁜 아가씨..ㅋㅋㅋ...그런데 아무래도 위키는 우리가 점거해야겠는걸? ㅎㅎㅎ 이런 수다쟁이들..ㅎㅎ - 조현태
두 친구가 젤 활발하군요. A 코드를 B로 바꾸면 중간 변수의 메모리도 낭비되지 않고, 좀더 최적화에 다가간 코드가 됩니다. 하지만 A를 B로 바꾸면 가독성이 떨어집니다. 상황에 따라 다르겠지만 running time에 별 차이가 없다라고 본다면, 저라면 가독성을 택할 것 같습니다. -- 보창 어떻게 할까 했는데 걍 소트 하믄 되는구나 ㄱ-;;;; 괜히 고민했었다;; - 태훈