C 来自用户的n个整数的中值
我似乎找不到错误,帮助:我试图输入n,后跟n个整数。然后输出这n个整数的中值。n是奇数和正数。n不到一百万 样本输入 53721449 样本输出 37C 来自用户的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
#包括
#包括
#定义整数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;
}