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

C 来自用户的n个整数的中值,c,C,我似乎找不到错误,帮助:我试图输入n,后跟n个整数。然后输出这n个整数的中值。n是奇数和正数。n不到一百万 样本输入 53721449 样本输出 37 #包括 #包括 #定义整数6 整数[6]; 整数比较(常数无效*a,常数无效*b){ 返回(*(int*)a-*(int*)b); } int main(){ int n,i; 对于(i=0;i

我似乎找不到错误,帮助:我试图输入n,后跟n个整数。然后输出这n个整数的中值。n是奇数和正数。n不到一百万

样本输入 53721449

样本输出 37

#包括
#包括
#定义整数6
整数[6];
整数比较(常数无效*a,常数无效*b){
返回(*(int*)a-*(int*)b);
}
int main(){
int n,i;
对于(i=0;i<6;i++){
printf(“输入数字:”);
scanf(“%d”,数字[i]);
}
qsort(数字、整数、sizeof(int)、比较);
对于(n=0;n<整数;n++){
printf(“%d”,数字[n]);
}
printf(“\n%d”,数字[整数/2]);
返回0;
}

Scanf需要内存地址,而不是值

尝试:

#包括
#包括
#定义整数6
整数[整数];
整数比较(常数无效*a,常数无效*b){
返回(*(int*)a-*(int*)b);
}
int main(){
int n,i;
printf(“输入数字:”);
对于(i=0;i<整数;i++){
scanf(“%d”和编号[i]);
}
qsort(数字、整数、sizeof(int)、比较);
对于(n=0;n<整数;n++){
printf(“%d”,数字[n]);
}
printf(“\n%d”,数字[整数/2]);
返回0;
}

Scanf需要内存地址,而不是值

尝试:

#包括
#包括
#定义整数6
整数[整数];
整数比较(常数无效*a,常数无效*b){
返回(*(int*)a-*(int*)b);
}
int main(){
int n,i;
printf(“输入数字:”);
对于(i=0;i<整数;i++){
scanf(“%d”和编号[i]);
}
qsort(数字、整数、sizeof(int)、比较);
对于(n=0;n<整数;n++){
printf(“%d”,数字[n]);
}
printf(“\n%d”,数字[整数/2]);
返回0;
}

如果你描述了你期望发生的事情和实际发生的事情,这会很有帮助。示例输入537 28 21 44 49示例输出37如果你描述了你期望发生的事情和实际发生的事情,这会很有帮助。示例输入537 28 21 44 49示例输出37你不应该在程序中硬编码一个像
6
这样的数字。你有常数
整数
,你应该使用它,而不是把
6
放进去。我编辑了上面的答案,使数组声明使用
整数
,并使
循环使用
整数
@steveha,当然同意了。我只是用提供的代码回答问题。你不应该在你的程序中硬编码一个像
6
这样的数字。你有常数
整数
,你应该使用它,而不是把
6
放进去。我编辑了上面的答案,使数组声明使用
整数
,并使
循环使用
整数
@steveha,当然同意了。我只是用提供的代码回答问题。
#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;
}
#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;
}