c语言中位数的函数 c语言 求中位数

C语言怎样提取一个数的十位个位百位千位?

设一个数为n,则在C语言中其个位、十位、百位、千位依次这样计算:n/1%10,n/10%10,n/100%10,n/1000%10

创新互联公司从2013年创立,是专业互联网技术服务公司,拥有项目成都网站制作、网站建设、外贸网站建设网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元襄垣做网站,已为上家服务,为襄垣各地企业和个人服务,联系电话:13518219792

代码如下:

#includestdio.h

int main(){

int n = 123456;

int unitPlace = n / 1 % 10;

int tenPlace = n / 10 % 10;

int hundredPlace = n / 100 % 10;

int thousandPlace = n / 1000 % 10;

printf("个位:%d\n十位:%d\n百位:%d\n千位:%d\n", unitPlace, tenPlace, hundredPlace, thousandPlace);

getchar();

return 0;

}

运行结果如图:

扩展资料

C语言的运算符包含的范围很广泛,共有34种运算符。C语言把括号、赋值、强制类型转换等都作为运算符处理。从而使C语言的运算类型极其丰富,表达式类型多样化。灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。

参考资料:百度百科--C语言

c语言 求中位数

#includestdio.h

#define N 1001

void bubblesort(int *list,int len) //冒泡排序

{

int i,j;

int temp;

for(i=0;ilen - 1;i++)

for(j=0;jlen-i - 1;j++) 

{

if(list[j+1]list[j])

{

temp=list[j+1];

list[j+1]=list[j];

list[j]=temp;

}

}

}

int main(){

int num;

int tar[N];

scanf("%d", num);

while(num != 0){

for(int i = 0; i num; i++){

scanf("%d", tar[i]);

}

bubblesort(tar, num);

if(num % 2 == 0){

printf("%lg\n",(tar[num/2] + tar[num/2 - 1]) / 2.0); 

}else{

printf("%lg\n", tar[num/2]*1.0);

}

scanf("%d",num);

}

return 0;

}

c语言 调用函数求一个数组的中位数

#includestdio.h

#define N 4

float mid(int *a)

{

int i,j,t;

float middle;

for(i=0;iN;i++)//对数组从小到大排序

for(j=i+1;jN;j++)

if(a[j]a[i])

{

t=a[i];

a[i]=a[j];

a[j]=t;

}

printf("排序后数组:\n");

for(i=0;iN;i++)

printf("%d ",a[i]);

printf("\n");

if(N%2==1)//求中位数

middle=a[N/2];

else

middle=(a[N/2]+a[N/2-1])/2.0;

return middle;

}

void main()

{

int a[N],i;

float middle;

printf("请输入%d个数:\n",N);

for(i=0;iN;i++)

scanf("%d",a[i]);

middle=mid(a);

printf("中位数是:%f\n",middle);

}

c语言求中位数的程序

#include stdio.h

void swap(int *p,int *q) {

int t;

t=*p;

*p=*q;

*q=t;

}

void sort(int a[],int n) {

int i,j,temp;

for(i=0;in-1;i++) {

for(j=0;jn-i-1;j++) {

if(a[j]a[j+1])

swap(a[j],a[j+1]);

}

}

}

int main() {

int a[] = {6,3,8,5,1};

int n = 5;

int sum,i;

sort(a,n);

n = (n+1) / 2 - 1; // -1 as array indexing in C starts from 0

printf("Median = %d ", a[n]);

return 0;

}

C语言找出两个序列的中位数,完整代码如下,帮忙看一下哪里出了问题呢

A.length是数组data的长度,等于5,B.length=3,mid=A.length+B.length/2=5+3/2=6

查找中位数if (k = mid )把mid 的值赋给k,此时k =6就执行return A.data[i ]整个函数调用就结束。

C语言 如何编个程序求一组数的中位数和众数

数组排序可以不用指针。你把数组定义成全局变量,比如说a[10001];然后调用我给你的快排程序就行了,这个程序可以背下来,很有用的。

void

qs(int

L,int

R)

{

int

i=L,j=R,mid=a[(L+R)/2],t;

while(ij)

{

while(a[i]mid)

++i;

while(a[j]mid)

--j;

if(i=j)

{

t=a[i];

a[i]=a[j];

a[j]=t;

++i;

--j;

}

}

if(iR)

qs(i,R);

if(Lj)

qs(L,j);

}

排好序之后找中位数就好办了。

至于众数,我觉得最好的方法是用bfs。但这个对你来说难度有点大,我就给你写一个hash表吧。还用上面的那个数组,且假定数组a中的最大值不超过10000,若超过,你把下面这个hash数组的范围扩大就行了。

另外,设a中有n个元素,a从1开始计数(若从0开始,你改一下就好了)

int

hash[10001]={0};

int

i,Max=0;

for(i=1;

i=n;

++i)

{

++hash[a[i]];

if(hash[a[i]]hash[Max])

Max=a[i];

}

最后输出Max就好了

刚t415422663倒是提醒我了,如果要判断众数有多个,我可以把上面的程序稍改一下

int

hash[10001]={0};

int

i,Max=-1;/*注意,这里把Max赋值为-1是为了防止数组a的元素个数为0时所有数据都被输出*/

for(i=1;

i=n;

++i)

{

++hash[a[i]];

if(hash[a[i]]Max])

Max=hash[a[i]];

}

//10000是数组a中可能出现的最大值,这个你可以自己改的

for(i=1;

i=10000;

++i)

if(hash[i]==Max)

printf("%d\n",i);

分享名称:c语言中位数的函数 c语言 求中位数
网页地址:https://www.cdcxhl.com/article10/hjojdo.html

成都网站建设公司_创新互联,为您提供定制网站标签优化营销型网站建设网站内链定制开发网站营销

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都seo排名网站优化