Pagini recente » Cod sursa (job #2210738) | Cod sursa (job #1271956) | Cod sursa (job #2113150) | Cod sursa (job #1783369) | Cod sursa (job #1459791)
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define INF 1000000
int N = 0; // dim matrice
int **matrice ;
void print_matrix(int ** matrix,FILE * out){
int i , j ;
for ( i = 0 ; i < N ; i++){
for(j = 0 ; j < N ; j++)
fprintf(out,"%d ",matrix[i][j] );
fprintf(out,"\n");
}
}
void init(FILE * in){
matrice = (int **)malloc(N * sizeof(int*));
int i ,j;
for (i = 0 ; i < N ; i++){
matrice[i] = (int*)malloc(N * sizeof(int));
for(j = 0 ; j < N ; j++){
fscanf(in,"%d",&matrice[i][j]);
if(matrice[i][j] == 0)
matrice[i][j] = INF ;
}
}
for ( i = 0 ; i < N ; i++)
matrice[i][i] = 0 ;
}
void royfloyd(){
int i , j , k ;
for(k = 0 ; k < N ; k++)
for(i = 0 ; i < N ; i++)
for( j = 0 ; j < N ; j++ )
matrice[i][j] = fmin(matrice[i][j],matrice[i][k] + matrice[k][j]);
}
int main(){
FILE * in = fopen("royfloyd.in","r");
FILE * out = fopen("royfloyd.out","w");
fscanf(in,"%d",&N);
init(in);
royfloyd();
print_matrix(matrice,out);
fclose(in);
fclose(out);
return 0 ;
}