c programming pattern solving