C언어에서 배열의 중앙값을 배열 내 정수 이동 없이 구할 수 있는 방법이 어떤 게 있나요?

도와주세요의 이미지

간단히 배열은 정수 원소가 3개만 들어가는 배열입니다. main함수 이전에 mid함수에서 중앙 값을 구해야 하고 반환 값은 중앙값이 저장된 배열 원소의 주소입니다.

일단 제가 작성한 코드입니다. 배열 내의 정수의 이동이 있었기 때문에 조건에 위반이 되지만 일단 작성해보았습니다. 이렇게 작성을 했는데도 디버깅을 했는데 값이 안 나오고 조금 있다가 띄어쓰기만 나오고 끝나더라구요...제가 오늘 포인터를 배운 터라 개념이 많이 부족합니다. 조금 도와주세요...ㅠㅠㅠ

int mid (int n[3]) {//세 개의 정수를 정렬하는 등 배열 내 정수의 이동 없이 중앙 값을 찾아내야 함
    int* p, * a, tmp = 0;
    for (p = n;p < n + 3;p++) {
        for (a = p;a < n + 3;a++) {
            if (*p > *a) {
                tmp = *p;
                *p = *a;
                *a = tmp;
            }
        }
    }
    *p = (n + 1);
    return p;//중앙 값이 저장된 배열 원소의 주소 반환
}
int main()
{
 
    int n[3], * p;
    for (p = n;p < n + 3;p++) {
        scanf("%d", p);
    }
    int* a = &n;
    a = mid(n[3]);
    printf("%d", *a);
 
    return 0;
}
세벌의 이미지

도와드리고 싶네요. 그래서 kldp에서 글 쓸 때 주의할 것 하나 알려드려요.
kldp에서 소스 코드에는 code 태그 쓰세요.
안 그러면 소스 코드 읽기 어려워져요.

익명 사용자의 이미지

단순 무식한 솔루션 때려 박기

int mid (int n[3]) {
    if (a[1] <= a[0] && a[0] <= a[2]) return a[0];
    if (a[2] <= a[0] && a[0] <= a[1]) return a[0];
 
    if (a[0] <= a[1] && a[1] <= a[2]) return a[1];
    if (a[2] <= a[1] && a[1] <= a[0]) return a[1];
 
    if (a[0] <= a[2] && a[2] <= a[1]) return a[2];
    if (a[1] <= a[2] && a[2] <= a[0]) return a[2];
}

우아함이나 효율과는 1광년쯤 떨어진 코드입니다만 대충 이렇게 짜도 요구 조건은 맞춥니다.

머리를 더 쓰면 중복되는 비교를 상당수 덜어낼 수도 있겠지만 그건 독자에게 연습문제로 남기죠.

익명 사용자의 이미지

이런. 배열 매개변수가 a가 아니라 n이군요. 습관이 돼서 그만.

수정할 수가 없으니 적절히 고쳐서 읽어주세요.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.