1. 求一个C语言求中位数的程序
你描述的要求不是很明了,应该分步描述,每一步的要求分步写出来,大家容易看懂.
明白你的意思了!
只有两个口控制步进电机的话,需要外加步进电机驱动器.
p1.0控制方向,p1.0是1(0)电机向前,p1.0是0(1)步进电机向后
p1.1控制步数和速度,用一个PWM就可以了,直接用定时器来控制.pwm频率越高速度越快,但要用在定时器中断里面计算步进的步数来确定走了多远.
至于你说的中断信号,可以用循环扫描的方法,在程序中扫描输入中断信号,当检测到信号后改变P1.5的电平,即可点亮LED
2. EXCEL中如何求平均数,众数和中位数
求A列的:
平均数: AVERAGE(a:a)
中位数: MEDIAN(a:a)
众数: MODE(a:a)
3. 请问如果分组,求各组的中位数该如何写公式呢
F2公式=MEDIAN(IF(A$2:A$14=E2,IF(C$2:C$14>=COLUMN(A:Z),B$2:B$14,""),"")),公式输完按CTRL+SHIFT+ENTER结束。
如果个数大于26的话,COLUMN(A:Z)中的Z可以改大一些。
4. 数学中位数怎么算啊
首先把数据从大到小或从小到大排列
如果有奇数个数,那么中间的数就是中位数
如果有偶数个数,那么中间两个数的平均数就是中位数
还要记住,求中位数一定要写单位
5. stata求中位数
可以试一下这个命令,结果生成了一个变量x,bysort 变量名:egen x =median (变量名)
6. C语言 如何编个程序求一组数的中位数和众数
数组排序可以不用指针。你把数组定义成全局变量,比如说a[10001];然后调用我给你的快排程序就行了,这个程序可以背下来,很有用的。
void qs(int L,int R)
{
int i=L,j=R,mid=a[(L+R)/2],t;
while(i<j)
{
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(i<R) qs(i,R);
if(L<j) 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);