Jakiego wyniku się spodziwałeś? :)
Mnożysz zmienną unsigned przez liczbę ujemną, więc przekraczasz jej zakres. :)
Polecam mały eksperyment:
#include <stdio.h>
int main()
{
int i = 3 * (-4);
unsigned j = 3 * (-4);
printf("%d %u", i, j);
return 0;
}
:)