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