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.0230 sec