fork download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <math.h>
  4.  
  5. #define MAX_LINES 10000
  6. #define THRESHOLD 3.0 // ピーク閾値 [V]
  7. #define MIN_DISTANCE 50 // 最小サンプル間隔
  8.  
  9. typedef struct {
  10. double time;
  11. double voltage;
  12. } DataPoint;
  13.  
  14. int main(void) {
  15. DataPoint data[MAX_LINES];
  16. int count = 0;
  17.  
  18. // 標準入力(input欄)から「時刻, 電圧」を読み込み
  19. while (count < MAX_LINES && scanf("%lf, %lf", &data[count].time, &data[count].voltage) == 2) {
  20. count++;
  21. }
  22.  
  23. printf("--- 解析結果 ---\n");
  24. printf("%-10s %-14s %-10s\n", "波形番号", "時刻[秒]", "電位[V]");
  25. printf("------------------------------\n");
  26.  
  27. int peak_index = 1;
  28. int last_peak_sample = -MIN_DISTANCE;
  29.  
  30. for (int i = 1; i < count - 1; i++) {
  31. if (data[i].voltage > data[i-1].voltage &&
  32. data[i].voltage >= data[i+1].voltage &&
  33. data[i].voltage >= THRESHOLD) {
  34.  
  35. if (i - last_peak_sample >= MIN_DISTANCE) {
  36. double v_rounded = round(data[i].voltage * 100.0) / 100.0;
  37. printf("%-10d %-14.2f %-10.2f\n", peak_index++, data[i].time, v_rounded);
  38. last_peak_sample = i;
  39. }
  40. }
  41. }
  42.  
  43. return 0;
  44. }
Success #stdin #stdout 0.01s 5320KB
stdin
0.000000,2.422930
0.010000,2.422930
0.020000,2.415294
0.030000,2.415294
0.040000,2.417839
0.050000,2.415294
0.060000,2.417839
0.070000,2.417839
0.080000,2.417839
0.090000,2.417839
0.100000,2.410203
0.110000,2.417839
0.120000,2.422930
0.130000,2.410203
0.140000,2.415294
0.150000,2.415294
0.160000,2.410203
0.170000,2.417839
0.180000,2.425475
0.190000,2.417839
0.200000,2.410203
0.210000,2.417839
0.220000,2.425475
0.230000,2.420385
0.240000,2.415294
0.250000,2.412749
0.260000,2.415294
0.270000,2.422930
0.280000,2.410203
0.290000,2.417839
0.300000,2.410203
0.310000,2.417839
0.320000,2.410203
0.330000,2.417839
0.340000,2.422930
0.350000,2.417839
0.360000,2.425475
0.370000,2.417839
0.380000,2.417839
0.390000,2.410203
0.400000,2.410203
0.410000,2.417839
0.420000,2.415294
0.430000,2.417839
0.440000,2.415294
0.450000,2.417839
0.460000,2.410203
0.470000,2.420385
0.480000,2.420385
0.490000,2.415294
0.500000,2.417839
0.510000,2.410203
0.520000,2.415294
0.530000,2.412749
0.540000,2.417839
0.550000,2.422930
0.560000,2.417839
0.570000,2.417839
0.580000,2.420385
0.590000,2.417839
0.600000,2.422930
0.610000,2.417839
0.620000,2.415294
0.630000,2.410203
0.640000,2.417839
0.650000,2.415294
0.660000,2.415294
0.670000,2.415294
0.680000,2.422930
0.690000,2.417839
0.700000,2.422930
0.710000,2.415294
0.720000,2.410203
0.730000,2.415294
0.740000,2.417839
0.750000,2.417839
0.760000,2.410203
0.770000,2.417839
0.780000,2.410203
0.790000,2.417839
0.800000,2.417839
0.810000,2.417839
0.820000,2.410203
0.830000,2.417839
0.840000,2.422930
0.850000,2.410203
0.860000,2.410203
0.870000,2.410203
0.880000,2.410203
0.890000,2.425475
0.900000,2.422930
0.910000,2.417839
0.920000,2.410203
0.930000,2.410203
0.940000,2.410203
0.950000,2.417839
0.960000,2.417839
0.970000,2.425475
0.980000,2.420385
0.990000,2.412749
1.000000,2.415294
1.010000,2.417839
1.020000,2.410203
1.030000,2.410203
1.040000,2.417839
1.050000,2.417839
1.060000,2.410203
1.070000,2.415294
1.080000,2.417839
1.090000,2.417839
1.100000,2.422930
1.110000,2.417839
1.120000,2.425475
1.130000,2.420385
1.140000,2.415294
1.150000,2.415294
1.160000,2.415294
1.170000,2.417839
1.180000,2.417839
1.190000,2.422930
1.200000,2.422930
1.210000,2.417839
1.220000,2.417839
1.230000,2.415294
1.240000,2.422930
1.250000,2.410203
1.260000,2.410203
1.270000,2.417839
1.280000,2.410203
1.290000,2.417839
1.300000,2.410203
1.310000,2.422930
1.320000,2.420385
1.330000,2.422930
1.340000,2.420385
1.350000,2.420385
1.360000,2.417839
1.370000,2.417839
1.380000,2.410203
1.390000,2.417839
1.400000,2.417839
1.410000,2.417839
1.420000,2.417839
1.430000,2.410203
1.440000,2.417839
1.450000,2.410203
1.460000,2.417839
1.470000,2.410203
1.480000,2.417839
1.490000,2.422930
1.500000,2.425475
1.510000,2.422930
1.520000,2.422930
1.530000,2.417839
1.540000,2.417839
1.550000,2.410203
1.560000,2.415294
1.570000,2.417839
1.580000,2.417839
1.590000,2.425475
1.600000,2.410203
1.610000,2.417839
1.620000,2.417839
1.630000,2.422930
1.640000,2.420385
1.650000,2.415294
1.660000,2.417839
1.670000,2.417839
1.680000,2.422930
1.690000,2.422930
1.700000,2.422930
1.710000,2.422930
1.720000,2.415294
1.730000,2.415294
1.740000,2.410203
1.750000,2.410203
1.760000,2.410203
1.770000,2.412749
1.780000,2.410203
1.790000,2.417839
1.800000,2.417839
1.810000,2.417839
1.820000,2.425475
1.830000,2.420385
1.840000,2.422930
1.850000,2.415294
1.860000,2.410203
1.870000,2.417839
1.880000,2.410203
1.890000,2.410203
1.900000,2.417839
1.910000,2.417839
1.920000,2.417839
1.930000,2.412749
1.940000,2.422930
1.950000,2.422930
1.960000,2.422930
1.970000,2.425475
1.980000,2.415294
1.990000,2.415294
2.000000,2.412749
2.010000,2.417839
2.020000,2.415294
2.030000,2.412749
2.040000,2.415294
2.050000,2.410203
2.060000,2.410203
2.070000,2.410203
2.080000,2.415294
2.090000,2.417839
2.100000,2.422930
2.110000,2.417839
2.120000,2.415294
2.130000,2.417839
2.140000,2.422930
2.150000,2.415294
2.160000,2.412749
2.170000,2.417839
2.180000,2.417839
2.190000,2.425475
2.200000,2.422930
2.210000,2.425475
2.220000,2.417839
2.230000,2.417839
2.240000,2.417839
2.250000,2.420385
2.260000,2.420385
2.270000,2.420385
2.280000,2.420385
2.290000,2.420385
2.300000,2.422930
2.310000,2.422930
2.320000,2.425475
2.330000,2.417839
2.340000,2.425475
2.350000,2.420385
2.360000,2.425475
2.370000,2.420385
2.380000,2.433112
2.390000,2.428021
2.400000,2.433112
2.410000,2.430566
2.420000,2.430566
2.430000,2.425475
2.440000,2.433112
2.450000,2.433112
2.460000,2.438202
2.470000,2.440748
2.480000,2.435657
2.490000,2.445838
2.500000,2.440748
2.510000,2.440748
2.520000,2.450929
2.530000,2.443293
2.540000,2.445838
2.550000,2.448384
2.560000,2.445838
2.570000,2.448384
2.580000,2.453474
2.590000,2.453474
2.600000,2.453474
2.610000,2.463656
2.620000,2.466201
2.630000,2.471292
2.640000,2.489109
2.650000,2.481473
2.660000,2.496745
2.670000,2.491654
2.680000,2.486564
2.690000,2.489109
2.700000,2.489109
2.710000,2.494200
2.720000,2.504381
2.730000,2.532380
2.740000,2.542561
2.750000,2.550197
2.760000,2.562924
2.770000,2.562924
2.780000,2.562924
2.790000,2.568015
2.800000,2.570560
2.810000,2.570560
2.820000,2.575651
2.830000,2.588377
2.840000,2.603649
2.850000,2.608740
2.860000,2.613831
2.870000,2.634193
2.880000,2.631648
2.890000,2.636739
2.900000,2.641829
2.910000,2.654556
2.920000,2.667283
2.930000,2.674919
2.940000,2.674919
2.950000,2.674919
2.960000,2.677464
2.970000,2.677464
2.980000,2.677464
2.990000,2.695282
3.000000,2.695282
3.010000,2.695282
3.020000,2.713099
3.030000,2.710554
3.040000,2.705463
3.050000,2.713099
3.060000,2.713099
3.070000,2.708008
3.080000,2.710554
3.090000,2.715644
3.100000,2.705463
3.110000,2.715644
3.120000,2.728371
3.130000,2.725826
3.140000,2.736007
3.150000,2.725826
3.160000,2.741098
3.170000,2.738552
3.180000,2.753824
3.190000,2.764006
3.200000,2.764006
3.210000,2.766551
3.220000,2.769097
3.230000,2.774187
3.240000,2.786914
3.250000,2.779278
3.260000,2.794550
3.270000,2.797095
3.280000,2.802186
3.290000,2.802186
3.300000,2.809822
3.310000,2.812367
3.320000,2.822549
3.330000,2.820003
3.340000,2.825094
3.350000,2.820003
3.360000,2.814913
3.370000,2.817458
3.380000,2.814913
3.390000,2.817458
3.400000,2.820003
3.410000,2.837821
3.420000,2.837821
3.430000,2.835275
3.440000,2.842911
3.450000,2.850547
3.460000,2.860729
3.470000,2.860729
3.480000,2.853093
3.490000,2.848002
3.500000,2.842911
3.510000,2.832730
3.520000,2.837821
3.530000,2.832730
3.540000,2.837821
3.550000,2.848002
3.560000,2.855638
3.570000,2.878546
3.580000,2.888728
3.590000,2.919272
3.600000,2.937089
3.610000,2.954906
3.620000,2.970178
3.630000,2.993087
3.640000,3.005813
3.650000,3.023631
3.660000,3.036357
3.670000,3.049084
3.680000,3.069447
3.690000,3.089809
3.700000,3.092355
3.710000,3.105082

stdout
--- 解析結果 ---
波形番号 時刻[秒]    電位[V] 
------------------------------