为了账号安全,请及时绑定邮箱和手机立即绑定

编程求数组各元素的中位数,要求如下:

编程求数组各元素的中位数,要求如下:

C
SUNMOON1 2016-12-23 19:49:30
编程求数组各元素的中位数,要求如下: (1)void array_input(double a[], int n)的功能是:输入double型数组a的各元素值,参数n是数组元素的个数; (2)void bubble_sort(double a[], int n)函数实现从小到大冒泡排序功能,参数n是数组元素的个数; (3)double median(double a[], int n)的功能是:求出有序数组array各元素的中位数,参数n是数组元素的个数; (说明:中位数就是在已排序的各元素中,处于中间位置的元素值:当数组元素个数为奇数时,处于中间位置的元素只有一个,中位数就是该元素的值;当数组元素个数为偶数时,处于中间位置的元素只有两个,中位数就是这两个元素的简单算术平均数) (4)void array_print(double a[],int n)功能是打印输出数组 (5)主函数的功能:定义一个是长度为8的double型数组,通过调用array_input()输入各元素的值,再调用select_sort()对数组各元素排序,之后调用median()得到中位数,最后输出结果; (6)主函数在前,上述三个函数在后面定义。程序运行如下图所示:
查看完整描述

1 回答

已采纳
?
望远

TA贡献1017条经验 获得超1032个赞

#include <stdio.h>
void main()
{
	//函数声明
	void array_input(double a[], int n);
	void bubble_sort(double a[], int n);
	double median(double a[], int n);
	void array_print(double a[],int n);


	double arr[10],m;
	int n=8;
	array_input(arr,n);
	bubble_sort(arr,n);
	m=median(arr,n);
	printf("中位数为%.3lf\n",m);
	array_print(arr,n);
}

/**
	输入double型数组a的各元素值,参数n是数组元素的个数
**/
void array_input(double a[], int n)
{
	printf("请输入数据%d个数据(以空格分隔):\n",n);
	for(int i=0;i<n;i++)
	{
		scanf("%lf",&a[i]);
	}
}

/**
	函数实现从小到大冒泡排序功能,参数n是数组元素的个数
**/
void bubble_sort(double a[], int n)
{
	int i,j;
	double temp;
	for(i=0;i<n-1;i++)
	{
		for(j=i;j<n;j++)
		{
			if(a[i]>a[j])
			{
				temp=a[i];
				a[i]=a[j];
				a[j]=temp;
			}
		}
	}
}

/**
	求出有序数组array各元素的中位数,参数n是数组元素的个数
**/
double median(double a[], int n)
{
	double result=0;
	if(n%2==0)
	{
		result=(a[n/2]+a[n/2-1])/2;
	}else{
		result=a[n/2];
	}
	return result;
}
/**
	打印输出数组
**/
void array_print(double a[],int n)
{
	printf("数组从小到大打印输出为:\n");
	for(int i=0;i<n;i++)
	{
		printf("%.3lf ",a[i]);
	}
	printf("\n");
}


查看完整回答
1 反对 回复 2016-12-23
  • 1 回答
  • 0 关注
  • 1826 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信