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 ...