595 patterns

void LarsonScanner()
{
int index = 0;

The issue is that index is initialized to 0 each time LarsonScanner is called. So you are only showing the very first pattern.

Make it static and your code will work.