Distance Vector Routing works on local knowledge i.e. a node relies on the routing knowledge which it's neighbors have.
C will get routing tables from B and D
From B --> A:3
From C --> A:3
C will calculate this
Min Distance to A = Min ( Distance to B + B's distance to A, Distance to D + D's Distance to A)
Min Distance to A = Min ( 1 + 3, 1 + 3)
Min Distance to A = Min( 4, 4)
Min Distance to A = 4
This is how $4$ is updated for A at node C....
Remember C does replies on its neighbors knowledge. It believes what it's neighbors will say.
Link State Routing on the other hand relies on Global Knowledge and uses Dijkstra Algorithm to find th shortest path to the node.
Now, every node will receive information from all other nodes
Node C will get
From B --> A: Infinity
From D --> A: No record.
Remember, in Link state, a node will send about its neighbors only. A is not a neighbor of D, so will not send nay record for A.
C will then use Dijkstra to find out shortest path.
As can be seen above, C will immediately know that B is down and will set its distance to infinity.
Hope this helps !