#include <stdio.h>
void set_smallest_to_zero(double a[], size_t n) {
if ( !a || !n ) {
return;
}
double smallest = a[0];
size_t min_index = 0,
max_index = 0,
i;
// find the smallest values
for ( i = 1; i < n; ++i ) {
if ( a[i] > smallest ) {
continue;
} else if ( a[i] < smallest ) {
smallest = a[i];
min_index = i;
max_index = i;
} else { // a[i] == smallest
max_index = i;
}
}
// set to zero all the the minimum values
for ( i = min_index; i <= max_index; ++i ) {
if ( a[i] == smallest ) {
a[i] = 0.0;
}
}
}
int main(void) {
double v[] = {2.0, 3.0, 1.2, 4.0, 0.7, 3.4, 0.7, 5.6, 1.2 };
size_t l = (sizeof (v ))/ (sizeof (double));
size_t i;
set_smallest_to_zero(v, l);
for ( i = 0; i < l; ++i ) {
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+Cgp2b2lkIHNldF9zbWFsbGVzdF90b196ZXJvKGRvdWJsZSBhW10sIHNpemVfdCBuKSB7CgkKICAgIGlmICggIWEgfHwgIW4gKSB7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIGRvdWJsZSBzbWFsbGVzdCA9IGFbMF07CiAgICBzaXplX3QgbWluX2luZGV4ID0gMCwJCQkJCiAgICAJICAgbWF4X2luZGV4ID0gMCwKICAgIAkgICBpOwoJCgkvLyBmaW5kIHRoZSBzbWFsbGVzdCB2YWx1ZXMKICAgIGZvciAoIGkgPSAxOyBpIDwgbjsgKytpICkgewogICAgCWlmICggYVtpXSA+IHNtYWxsZXN0ICkgewogICAgCQljb250aW51ZTsKICAgIAl9IGVsc2UgaWYgKCBhW2ldIDwgc21hbGxlc3QgKSB7CiAgICAgICAgICAgIHNtYWxsZXN0ID0gYVtpXTsKICAgICAgICAgICAgbWluX2luZGV4ID0gaTsKICAgICAgICAgICAgbWF4X2luZGV4ID0gaTsKICAgICAgICB9IGVsc2UgeyAgICAgICAgICAgICAgICAgICAgICAgLy8gIGFbaV0gPT0gc21hbGxlc3QKICAgICAgICAJbWF4X2luZGV4ID0gaTsKICAgICAgICB9CiAgICB9CgoJLy8gc2V0IHRvIHplcm8gYWxsIHRoZSB0aGUgbWluaW11bSB2YWx1ZXMKICAgIGZvciAoIGkgPSBtaW5faW5kZXg7IGkgPD0gbWF4X2luZGV4OyArK2kgKSB7CiAgICAgICAgaWYgKCBhW2ldID09IHNtYWxsZXN0ICkgewogICAgICAgICAgICBhW2ldID0gMC4wOwogICAgICAgIH0KICAgIH0KCn0KCmludCBtYWluKHZvaWQpIHsKCWRvdWJsZSB2W10gPSB7Mi4wLCAzLjAsIDEuMiwgNC4wLCAwLjcsIDMuNCwgMC43LCA1LjYsIDEuMiB9OwoJc2l6ZV90IGwgPSAoc2l6ZW9mICh2ICkpLyAoc2l6ZW9mIChkb3VibGUpKTsKCXNpemVfdCBpOwoJc2V0X3NtYWxsZXN0X3RvX3plcm8odiwgbCk7Cglmb3IgKCBpID0gMDsgaSA8IGw7ICsraSApIHsKCQlwcmludGYgKCIlbGZcbiIsIHZbaV0pOwoJfQoJcmV0dXJuIDA7Cn0K