## Find the mistake(s) in the following code

Find the mistake(s) in the following code:

```unsigned int i;
for ( i = 100; i <= 0; --i)
printf("%d\n", i);

```

My initial thoughts:
Because i is an unsigned integer, i cannot be negative. Hence the for loop should be:

```for ( i = 100; i >= 0; --i)

Solution:
As i is unsigned integer, when i == 0 and one does –i, i will be FFFF FFFF in hex. Then when you do printf with “%d”, i will be interpret as an signed integer. Hence -1 will be printed. Then it will print all the way to the smallest integer, which is $-2^{31}$. A piece of perfectly working code should be:
unsigned int i;
for ( i = 100; i > 0; --i)
printf("%u\n", i);

div.wpmrec2x{max-width:610px;}
div.wpmrec2x div.u > div{float:left;margin-right:10px;}
div.wpmrec2x div.u > div:nth-child(3n){margin-right:0px;}

(function(g,\$){if("undefined"!=typeof g.__ATA){
}})(window,jQuery);

var o = document.getElementById('crt-1751452754');
if ("undefined"!=typeof Criteo) {
var p = o.parentNode;
p.style.setProperty('display', 'inline-block', 'important');
o.style.setProperty('display', 'block', 'important');