c语言中位数
A. c语言编写求n个整数的平均数,中位数和众数
#include<stdio.h>
intcalculate_mode(intnumber[],intn)//求众数
{
inti,temp;
intp_count=1,count=1;
temp=number[0];
for(i=1;i<n;i++)
if(temp==number[i])
{
count++;
temp=number[i];
}
else
{
if(count>p_count)
{
p_count=count;//更新众数
}
count=1;
temp=number[i];
}
returnp_count;
}
doublecalculate_mean(intnumber[],intn)//求平均值
{
inti;
doublesum=0;
for(i=0;i<n;i++)
{
sum+=number[i];
}
returnsum/n;
}
doublecalculate_median(intnumber[],intn)//求中位数
{
if(n%2==0)
return(number[n/2-1]+number[n/2])/2.0;
else
returnnumber[n/2];
}
intmain(void)
{
intn,i,j,number[100]={0},temp;
doublemean,median;
intmode;
printf("请问需要输入几位整数? ");
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&number[i]);
for(i=0;i<n;i++)//排序,方便计算
for(j=i+1;j<n;j++)
if(number[i]>number[j])
{
temp=number[i];
number[i]=number[j];
number[j]=temp;
}
mean=calculate_mean(number,n);
median=calculate_median(number,n);
mode=calculate_mode(number,n);
printf("平均值是%f 中位数是%f 众数是%d",mean,median,mode);
return0;
}
刚写的~~~如果有错误告诉我
B. c语言中高位数,中位数,低位数的定义
这不是C语言的定义,这是统计学的定义。肆此凳以工资统计为例,高扒首位数是劳动力市场工资指导价位平均水平的一种反映。通常而言,将薪酬从高往低排,在25%处的那个数字为高位数,50%为裂旅中位数,75%为低位数。
C. 为什么在c语言中会引入三种进制数!八进制,十进制,十六进制!难道一种进制数不够用还是为什么哪位
1) 二进制数中只有两个字符0和1,表示具有两个不同稳定状态的元器件。例如,电路中有,无电流,有电流用1表示,无电流用0表示。类似的还比如电路中电压的高,低,晶体管的导通和截止等。
2) 二进制数运算简单,大大简化了计算中运算部件的结构。
由于二进制数据的基R较小,所以二进制数据的书写和阅读不方便,为此,在小型机中引入了八进制。
八进制的基R=8=2^3,有数码0、1、2、3、4、5、6、7,并且每个数码正好对应三位二进制数,所以八进制能很好地反映二进制。八进制用下标8或
数据后面加O表示 例如:二进制数据 ( 11 101 010 . 010 110 100 )2 对应 八进制数据 ( 3 5 2 . 2 6 4
)8或352.264O.
人们通常使用的是十进制。它的特点有两个:有0,1,2….9十个基本数字组成,十进制数运算是按“逢十进一”的规则进行的.
在计算机中,除了十进制数外,经常使用的数制还有二进制数和十六进制数.在运算中它们分别遵循的是逢二进一和逢十六进一的法则.
由于二进制数在使用中位数太长,不容易记忆,所以又提出了十六进制数
十六进制数有两个基本特点:它由十六个字符0~9以及A,B,C,D,E,F组成(它们分别表示十进制数10~15),十六进制数运算规律是逢十六进一,即基R=16=2^4,通常在表示时用尾部标志H或下标16以示区别。
例如:十六进制数4AC8可写成(4AC8)16,或写成4AC8H。
D. c语言 调用函数求一个数组的中位数
#include<stdio.h>
#define N 4
float mid(int *a)
{
int i,j,t;
float middle;
for(i=0;i<N;i++)//对数组从小到大排序
for(j=i+1;j<N;j++)
if(a[j]<a[i])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
printf("排序后数组:\n");
for(i=0;i<N;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;i<N;i++)
scanf("%d",&a[i]);
middle=mid(a);
printf("中位数是:%f\n",middle);
}
E. c语言,输入一个数字,求该数字中位数最大的是哪一位(最大)
#include <stdio.h>
int main()
{
int a,max=0;
scanf("%d",&a);
while(a)
{
if(max<a%10)
max=a%10;
a/=10;
}
printf("%d ",max);
return 0;
}
F. c语言求编程:中位数
你描述的要求不是很明了,应该分步描述,每一步的要求分步写出来,大家容易看懂.
明白你的意思了!
只有两个口控制步进电机的话,需要外加步进电机驱动器.
p1.0控制方向,p1.0是1(0)电机向前,p1.0是0(1)步进电机向后
p1.1控制步数和速度,用一个PWM就可以了,直接用定时器来控制.pwm频率越高速度越快,但要用在定时器中断里面计算步进的步数来确定走了多远.
至于你说的中断信号,可以用循环扫描的方法,在程序中扫描输入中断信号,当检测到信号后改变P1.5的电平,即可点亮LED