c語言峰值演算法 C語言尋找一組資料中的第一第二峰值

2021-10-12 15:33:10 字數 901 閱讀 5646

c語言尋找一組資料中的第一第二峰值

實驗要求,我需要找出一組陣列中的兩個峰值:第乙個峰值和第二個峰值及其陣列下標。這組資料畫出的圖應該是這樣的,我就要找出圖中的那兩個峰值

我寫的程式如下,我試了一下,這樣找出的資料是不對的。比如有的資料會找出這樣的數(隔得太近了,肯定不是)有的會找出這樣的數

所以,請問有沒有辦法找出這樣的兩個峰值。

int main(int argc, char** ar**)

double a[3000];

double peak1,peak2,min=a[0];

int i,p1,p2,t1,t2,life;

file *fp=null;

file *fpp=null;

fp=fopen("g:\\uz\\new\\data100578.txt","r");

for(i=0;i<2500;i++)

fscanf(fp,"%lf",&a[i]);

for(i=1;i<2500;i++)

if(a[i]

min=a[i];

peak1=a[i];

p1=i+1;

}//找第乙個峰值

for(i=p1,min=a[p1];i<2500;i++)

if(a[i]

min=a[i];

peak2=a[i];

p2=i+1;

}//找第二個峰值

printf("%lf %d\n",peak1,p1);

printf("%lf %d\n",peak2,p2);

fclose(fp);

return 0;

附幾組資料

[此貼子已經被作者於2020-2-11 12:19編輯過]

附件: 遊客沒有瀏覽附件的許可權,請 登入 或 註冊

c語言峰值演算法 C語言 回文數程式演算法

觀察數字 12321,123321 都有乙個共同的特徵,無論從左到右讀還是從右向左讀,都是相同的。這樣的數字叫做回文數字。本題要求你找到一些5位或6位的十進位制數字。滿足如下要求 該數字的各個數字之和等於輸入的整數。輸入格式 乙個正整數 n 10 輸出格式 若干行,每行包含乙個滿足要求的5位或6位整...

C語言實現查詢一組數中的眾數

實現思路 第一步將無序陣列排序 第二步排好序的陣列找出連續相等最多的那個數字 比如 已排好序的陣列如 就找出連續相等次數最多的數字3 include 交換兩個整數的值 void swap int p,int q 快速排序 void quick sort int a,int low,int high ...

C語言 K個一組翻轉鍊錶

給出乙個鍊錶,每 k 個節點一組進行翻轉,並返回翻轉後的鍊錶。k 是乙個正整數,它的值小於或等於鍊錶的長度。如果節點總數不是 k 的整數倍,那麼將最後剩餘節點保持原有順序。示例 給定這個鍊錶 1 2 3 4 5 當 k 2 時,應當返回 2 1 4 3 5 當 k 3 時,應當返回 3 2 1 4 ...