本文目錄一覽:
- 1、C語言實現ADC採樣問題
- 2、無放回簡單隨機抽樣方法抽出4個隨機數用C語言怎麼寫,意要求採用編程語言自己設計程序完成
- 3、c語言中定義一個長度為200的數組,數組的值在每採樣一次之後刪除最先採集的,而保留最後採集的。最快的方法
C語言實現ADC採樣問題
我的理解是這樣的:
我不知道ADC_TEMP 是否已經被初始化為零了。如果是,思路就是這樣 0000 0000 0000 0000 0000 0000 這是ADC_temp,AD_DATA 應該就是採樣的 每一位 的數 比如採樣你說的 101101,其實應該把前面的0補齊,也就是0000 0000 0000 0000 0010 1101 。然後經過for循環,從第一位開始取,當遇到1的時候,執行ADC_temp|= 1; 我們知道或運算的規則,1和什麼都是1。所以就從第一位0開始取,直到取完最後一位,每取一位左移一位,再和輸出的AD_DATA 或運算。前提是,這個AD_DATA是高位輸出。
無放回簡單隨機抽樣方法抽出4個隨機數用C語言怎麼寫,意要求採用編程語言自己設計程序完成
(1)
#include “stdio.h”
#include stdlib.h
#include “time.h”
int main(int argc,char *argv[]){
int a[]={20,31,50,52,56,60,63,72,110,112},i,k,t,x;
srand((unsigned)time(NULL));
for(k=10,i=0;i4;i++){
printf(“%d “,a[t=rand()%k]);
x=a[t],a[t]=a[–k],a[k]=x;
}
printf(“\n”);
return 0;
}
運行樣例:
(2)
#include “stdio.h”
#include stdlib.h
#include “time.h”
int main(int argc,char *argv[]){
int a[]={20,31,50,52,56,60,63,72,110,112},i;
srand((unsigned)time(NULL));
for(i=0;i4;i++)
printf(“%d “,a[rand()%10]);
printf(“\n”);
return 0;
}
運行樣例:
(3)
#include “stdio.h”
#include stdlib.h
#include “time.h”
int main(int argc,char *argv[]){
int a[]={20,31,50,52,56,60,63,72,110,112},i,k,t[10];
srand((unsigned)time(NULL));
for(k=i=0;i10;i++)
if(a[i]45)
t[k++]=a[i];
if(!k){
printf(“No qualified data, exit…\n”);
return 0;
}
printf(“%d “,t[rand()%k]);
for(k=i=0;i10;i++)
if(a[i]=45 a[i]=65)
t[k++]=a[i];
if(!k){
printf(“No qualified data, exit…\n”);
return 0;
}
printf(“%d %d “,t[rand()%k],t[rand()%k]);
for(k=i=0;i10;i++)
if(a[i]65)
t[k++]=a[i];
if(!k){
printf(“No qualified data, exit…\n”);
return 0;
}
printf(“%d\n”,t[rand()%k]);
return 0;
}
運行樣例:
c語言中定義一個長度為200的數組,數組的值在每採樣一次之後刪除最先採集的,而保留最後採集的。最快的方法
可以定義3個變數,一個標記數組的實際存放數值的大小a,一個標記存放數值的起始位置b,一個標記存放下一個數值的位置c,你按照循環的方式存放數據,比如現在存放160個數據,又來了一個數據並刪除第一個數據,那麼a不變為160,b變為(b+1)%200,把數組m[c]變為你新採集的數,然後c變為(c+1)%200,
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/295765.html