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