来自用户的n个整数的中值

时间:2012-08-16 00:50:49

标签: c

我似乎无法找到错误,帮助:我试图输入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;
}

1 个答案:

答案 0 :(得分: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;
}
相关问题