1

バグが見つからないようです。ヘルプ: n の後に n の整数を入力しようとしています。次に、これらの n 個の整数の中央値を出力します。n は正の奇数です。n は 100 万未満です。

サンプル入力 5 37 28 21 44 49

出力例 37

#include <stdio.h>
#include <stdlib.h>
#define INTEGERS 6


int numbers[6];

int compare(const void * a, const void * b) {
    return ( *(int*) a - *(int*) b);
}

int main() {
    int n, i;

    for (i = 0; i < 6; i++) {
        printf("Enter numbers:");
        scanf("%d", numbers[i]);

    }

    qsort(numbers, INTEGERS, sizeof (int), compare);
    for (n = 0; n < INTEGERS; n++) {
        printf("%d ", numbers[n]);
    }
    printf("\n%d ", numbers[INTEGERS / 2]);
    return 0;
}
4

1 に答える 1

4

Scanf には、値ではなくメモリ アドレスが必要です。

試す:

#include <stdio.h>
#include <stdlib.h>
#define INTEGERS 6


int numbers[INTEGERS];

int compare(const void * a, const void * b) {
    return ( *(int*) a - *(int*) b);
}

int main() {
    int n, i;

    printf("Enter numbers:");
    for (i = 0; i < INTEGERS; i++) {
        scanf("%d", &numbers[i]);
    }

    qsort(numbers, INTEGERS, sizeof (int), compare);
    for (n = 0; n < INTEGERS; n++) {
        printf("%d ", numbers[n]);
    }
    printf("\n%d ", numbers[INTEGERS / 2]);
    return 0;
}
于 2012-08-16T00:57:41.223 に答える