Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- void printa_matriz(int** mat, int dim){
- int i, j;
- printf("[ ]");
- for(i=0;i<dim;i++){
- printf("[%.3d]", i);
- }
- printf("\n");
- for(i=0;i<dim;i++){
- printf("[%.3d]", i);
- for(j=0;j<dim;j++){
- printf("[%.3d]", mat[i][j]);
- if(j==dim-1){
- printf("\n");
- }
- }
- }
- }
- int descobre_tamanho(){
- FILE* arq=fopen("Mapa.txt","r");
- if(arq==NULL){
- printf("Erro na leitura de arquivo\n");
- return 0;
- }
- char linha[4];
- int i=0;
- while(linha[0]!='-'){
- fgets(linha,4,arq);
- i++;
- }
- return i-1;
- }
- void zera_matriz(int** mat, int dim){
- int i, j;
- for(i=0;i<dim;i++){
- for(j=0;j<dim;j++){
- mat[i][j]=0;
- }
- }
- }
- int** leitura(int* dim){
- FILE* arq=fopen("Mapa.txt","r");
- if(arq==NULL){
- printf("Erro na leitura de arquivo\n");
- return NULL;
- }
- int i=descobre_tamanho();
- *dim=i;
- int j;
- int** mat=(int**)malloc(sizeof(int*)*i);
- for(j=0;j<30;j++){
- mat[j]=(int*)malloc(sizeof(int)*i);
- }//aloca a matriz
- char linha[30];
- int tam;
- zera_matriz(mat,i);
- i=0;
- while(fscanf(arq, "%s", linha) == 1){
- printf("Linha: %s\n", linha);
- if(linha[0]!='-'){
- if(strlen(linha)==4){//primeira parte
- mat[i][i]=(linha[2])-48;//se c=48 dรยก erro
- i++;
- }else{//segunda parte
- i=0;
- tam=strlen(linha);
- printf("%d ", tam);
- while(i<tam-5){
- mat[linha[0]-65][linha[2]-65]=(mat[linha[0]-65][linha[2]-65])*10 + (linha[4+i]-48);
- mat[linha[2]-65][linha[0]-65]=mat[linha[0]-65][linha[2]-65];
- printf("%d ",mat[linha[0]-65][linha[2]-65]);
- i++;
- }
- }
- }
- }
- fclose(arq);
- return mat;
- }
- void main(){
- int dim;
- int** mat=leitura(&dim);
- printa_matriz(mat,dim);
- system("pause");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement