Min coins: dp[v] = min(dp[v], dp[v-c]+1). Count ways: dp[v] += dp[v-c] (coin-outer = combinations). Watch each coin relax the table left to right.
min(dp[v], dp[v-c]+1) (∞ marks unreachable amounts,
shown in red); count uses dp[v] += dp[v-c] with dp[0]=1.
min(dp[v], dp[v-c]+1) with INF for unreachable amounts; count uses dp[v] += dp[v-c] with dp[0]=1.
Switch the loops to amount-outer and the count variant would instead count permutations. See junior.md and professional.md.