C/C++の宿題を片付けます 79代目
■ このスレッドは過去ログ倉庫に格納されています
0152デフォルトの名無しさん
2006/12/14(木) 13:31:48#include <stdio.h>
#include <math.h>
const double eps = 1E-6;
int main() {
double a[] = {6.05385, 8.52025, 15.8029, 15.2049, 10.5501, 11.904, 2.34999, 10.0731, 0.270519, 4.03088, 2.27745, 13.3459};
double h = 8.58708;
int len = sizeof(a)/sizeof(double);
int s = 0, e = 0, i = 0, j, mx = 0, mn = 0;
for(j=1;j<len;j++) {
if(a[j] > a[mx]) mx = j;
if(a[j] < a[mn]) mn = j;
if(fabs(a[mx]-a[mn]) < h) continue;
if(j-1-i > e-s) {
s = i;
e = j-1;
}
mx = mn = j;
for(i=j-1;;i--) {
if(a[i] > a[mx]) mx = i;
if(a[i] < a[mn]) mn = i;
if(fabs(a[mx]-a[mn]) - h >= -eps) break;
}
i++;
}
if(j-1-i > e-s) {
s = i;
e = j-1;
}
printf("%d to %d", s, e);
return 0;
}
■ このスレッドは過去ログ倉庫に格納されています