Preview:
#include<stdio.h>
#include<stdbool.h>
#include<limits.h>
#define V 9

int minDistance(int dist[] ,bool sptset[]){
    int min = INT_MAX;  
    int min_index;
    for(int v=0;v<V;v++){
        if(sptset[v] == false && dist[v]<=min){
            min = dist[v];
            min_index = v;
        }
    }
    return min_index;
}

void printSolution(int dist[]){
    printf("Vertex\t\tDistance from source\n");
    for(int i=0;i<V;i++){
        printf("%d\t\t\t\t %d\n",i,dist[i]);
    }
}

void dijkstra(int graph[V][V],int src){
    int dist[V];
    bool sptset[V];
    for(int i=0;i<V;i++){
        dist[i] = INT_MAX;
        sptset[1]=false;
    }
    dist[src]=0;
    for(int count=0;count<V-1;count++){
        int u = minDistance(dist,sptset);
        sptset[u]=true;
        for(int v=0;v<V;v++){
            if(!sptset[v] && graph[u][v] && dist[u]!=INT_MAX && dist[u]+graph[u][v] < dist[v])
                dist[v] = dist[u]+graph[u][v];
        }
    }
    printSolution(dist);
}

int main(){
    int graph[V][V] = {{0,4,0,0,0,0,0,8,0},
               {4,0,8,0,0,0,0,11,0},
               {0,8,0,7,0,4,0,0,2},
               {0,0,7,0,9,14,0,0,0},
               {0,0,0,9,0,10,0,0,0},
               {0,0,4,14,10,0,2,0,0},
               {0,0,0,0,0,2,0,1,6},
               {8,11,0,0,0,0,1,0,7},
               {0,0,2,0,0,0,6,7,0}};
    dijkstra(graph,0);
    return 0;
}
downloadDownload PNG downloadDownload JPEG downloadDownload SVG

Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!

Click to optimize width for Twitter