제가 작년 말에 c언어를 시작해서.....잘 못해요ㅜㅜ

수를 순서대로 정렬하는 방법을 알려주세요!

이렇게라도 하려 그랬는데, 너무 경우의 수가 많아서 다 할 수가 없을 것 같아서....ㅜㅜ

chatterboy   8년 전

정렬을 직접 구현해서 사용할 수도 있지만 라이브러리에 있는 정렬 함수를 이용하는 것이 좋아요.

C언어의 경우 <stdlib.h>에 있는 qsort()가 정렬을 해주는 함수입니다. 아래처럼 사용하시면 됩니다.

onjo0127   8년 전

추가하자면 이런 식은 컴파일러가 제대로 인식하지 못합니다

if(a<b<c<d<e)

&& 기호를 사용해야 인식합니다

if(a<b&&b<c ...)


c++로 좀 더 간단하게 정렬할 수 있는데

#include <algorithm>

을 하시고

std::sort(배열이름,배열이름+크기)


예)


std::sort(arr,arr+n);

답변 내용이 도움이 많이 됬어요~ 감사합니다:)

그런데 질문 하나 더 해도 될까요?

chatterboy님께서 답변하신 부분에서 마지막에 for문 쓰는 걸로 배열을 출력하는 거 같은데  for문 을쓰고도 배열한 것 중 가운뎃 값을 출력할 수 있나요?

chatterboy   8년 전

위 소스코드는 qsort() 예제를 보여드린거구 만약 배열이 정렬이 되어있다면 가운데 값은 a[n/2]를 하시면 바로 구할 수 있습니다.

예제에서 배열 a가 정렬이 되어있다면 a = {1, 2, 3, 5, 8} 이 됩니다.

n / 2 = 5 / 2 = 2 가 되기 때문에 a[2] = 3 을 출력하게 되지요.

a[n/2]를 출력햇는데 왜 5개나 출력되나요...?

제가 잘못한건가요...ㅜㅜㅜ

댓글을 작성하려면 로그인해야 합니다.