なぜか、参考書どおりにコードを打ち込んだのに実行結果が違ってしまいます。

#include <stdio.h>

int main(void)
{
int i, j, ln;

printf("何段ですか:");
scanf("%d", &ln);

for (i=1; i<=ln; i++); {
for (j=1; j<=i; j++)
putchar('*');
putchar('\n');
}

return (0);
}

ちなみにOSはVistaです。どこか違っていたら教えてください。