U E D R , A S I H C RSS

중위수구하기/조현태

C++

느낀점

중위수가 먼지 몰랐다..;;ㅁ;; 인터넷에서 뒤져보니 앞과 뒤의 합이 같은 어쩌고 저쩌고...
뭔소린지 몰라서 아영이 소스를 보니 그냥 단순히 가운데 숫자를 의미하는것 같아서, 그걸로 의미를 정하고 작성하였다.
-999를 넣으면 바로 종료되라는 말이 없었기에 그냥 번 물어보고 끝내려다, 왠지 이상해서 바꾸려고 하다보니 input을 밖으로 꺼내버렸..
아영이꺼와는 다르게 중간에 for문이 있기에 break를 하면 그냥 밑으로 내려간다는.. 그렇다고 if문을 두개 쓰려니 메모리 낭비..
그래서 함수로 빼내버렸다. 에잇.. 뭐 될데로 되라지~~ 휘적휘적 귀찮다구..ㅎㅎ
그래도 뭐 나름대로 MAX_NUMBER에 3이외의 값을 넣으면(단 홀수! 아닐경우 정확한 가운데 값이 아니닷! ) 여러가지로 늘릴 수 있다.^^


코 드

~cpp 
#include <iostream>

using namespace std;

const int MAX_NUMBER=3;
const int BREAK_NUMBER=-999;

void change(int *number1, int *number2)
{
	int temp=*number1;
	*number1=*number2;
	*number2=temp;
}

int input(int *input_number)
{
	for (int i=0; i<MAX_NUMBER; ++i)
	{
		cout << i+1 << "번째 숫자를 입력해 주요.";
		cin >> input_number[i];
		if (0==i && input_number[0]==BREAK_NUMBER)
			return 0;
	}
	return 1;
}

void main()
{
	int input_number[MAX_NUMBER]={0,};
	while (input(input_number))
	{
		for (int i=0; i<MAX_NUMBER-1; ++i)
		{
			for (int j=0; j<MAX_NUMBER-i-1; ++j)
			{
				if (input_number[j]>input_number[j+1])
					change(&input_number[j],&input_number[j+1]);
			}
		}
		cout << "가운데 값은 " << input_number[MAX_NUMBER/2] << "입니다.\n";
	}
}

Erlang

느낀점

졸려.

코드

  • pr_5.erl

-module(pr_5).
-export([getMiddle/3]).
getMiddle(NumA, NumB, NumC) -> [_, A, _] = lists:sort([NumA, NumB, NumC]), A.

  • shell

17> c(pr_5).
{ok,pr_5}
18> pr_5:getMiddle(2, 5, 3).
3

FeedBack

while (input(input_number)) 요거 이해하는데 버벅거렸다; 입력값을 -999를 입력받을때까지 계속 입력받는걸로 했구낭ㅇㅅㅇ

while(1)
{
if(input(input_number)==0) break; // 또는 if(!input(input_number)) break;
.
.
}

요렇게 하는게 보기 편하지 않을까나;;; -태훈zyint

└ㅎㅎㅎ 어짜피 컴파일하고나면 똑같게 되니까 나아보이기는 한데..^^
왠지 저렇게 축약해놓는게 좋아보여서..음..ㅠ.ㅜ
역시 내소스는 읽을만한 소스가 아냐~!..ㅎㅎㅎ - 조현태
변수 테이블 왜 안지었어 ! ㅋㅋ- 허아영
└아..변수테이블.. 만들어야 하는군..ㅎㅎ 못봤으..ㅎㅎ 내일 만들어 놓을께.^^ - 조현태

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:31:10
Processing time 0.0105 sec