chromium / chromium / src / 64c2848c0ca94a6f4ce822d80d2506587439eab4 / . / third_party / lcov / example / methods / iterate.c

/* | |

* methods/iterate.c | |

* | |

* Calculate the sum of a given range of integer numbers. | |

* | |

* This particular method of implementation works by way of brute force, | |

* i.e. it iterates over the entire range while adding the numbers to finally | |

* get the total sum. As a positive side effect, we're able to easily detect | |

* overflows, i.e. situations in which the sum would exceed the capacity | |

* of an integer variable. | |

* | |

*/ | |

#include <stdio.h> | |

#include <stdlib.h> | |

#include "iterate.h" | |

int iterate_get_sum (int min, int max) | |

{ | |

int i, total; | |

total = 0; | |

/* This is where we loop over each number in the range, including | |

both the minimum and the maximum number. */ | |

for (i = min; i <= max; i++) | |

{ | |

/* We can detect an overflow by checking whether the new | |

sum would become negative. */ | |

if (total + i < total) | |

{ | |

printf ("Error: sum too large!\n"); | |

exit (1); | |

} | |

/* Everything seems to fit into an int, so continue adding. */ | |

total += i; | |

} | |

return total; | |

} |