codice: scanf("%d%", &k); hai inserito un % di troppo.
scanf("%d%", &k);
Amaro C++, il gusto pieno dell'undefined behavior.
Regole del Forum