fork download
  1. #include <stdio.h>
  2.  
  3. #define MAX_DATA 100 // 何の数字か名前をつける(定数)
  4.  
  5. int main(void) {
  6. double time[MAX_DATA];
  7. double voltage[MAX_DATA];
  8. int n = 0; // 読み込んだデータ数
  9.  
  10. // 1. データの読み込み
  11. // 1年目なら「count」や「n」など、中身が想像できる変数名を使いたいところ
  12. while (n < MAX_DATA && scanf("%lf,%lf", &time[n], &voltage[n]) == 2) {
  13. n++;
  14. }
  15.  
  16. // 2. 見出しの表示
  17. printf("No.\t時間[s]\t電位[v]\n");
  18.  
  19. // 3. 極大値を探して表示
  20. int peak_id = 1;
  21.  
  22. // 最初のデータ(0)と最後のデータ(n-1)は前後と比較できないので、1 から n-2 まで回す
  23. for (int i = 1; i < n - 1; i++) {
  24. // 前の点より高く、かつ後ろの点よりも高い = 山の頂上
  25. if (voltage[i] > voltage[i - 1] && voltage[i] > voltage[i + 1]) {
  26. printf("%d\t%.6f\t%.6f\n", peak_id, time[i], voltage[i]);
  27. peak_id++;
  28. }
  29. }
  30.  
  31. return 0;
  32. }
Success #stdin #stdout 0s 5320KB
stdin
0.030000,4.591121
0.040000,4.601305
0.050000,4.593667
0.060000,4.591121
0.070000,4.591121
0.080000,4.593667
0.090000,4.591121
0.100000,4.586029
0.110000,4.598759
0.120000,4.598759
0.130000,4.591121
0.140000,4.593667
0.150000,4.591121
0.160000,4.591121
0.170000,4.586029
0.180000,4.586029
0.190000,4.601305
0.200000,4.593667
0.210000,4.591121
0.220000,4.598759
0.230000,4.583483
0.240000,4.586029
0.250000,4.593667
0.260000,4.591121
0.270000,4.591121
0.280000,4.588575
0.290000,4.586029
0.300000,4.601305
0.310000,4.588575
0.320000,4.591121
stdout
No.	時間[s]	電位[v]
1	0.040000	4.601305
2	0.080000	4.593667
3	0.140000	4.593667
4	0.190000	4.601305
5	0.220000	4.598759
6	0.250000	4.593667
7	0.300000	4.601305