T_E Posted December 6, 2006 at 12:02 AM Report #69075 Posted December 6, 2006 at 12:02 AM #include "stdio.h" #include "stdlib.h" #include <conio.h> #include <string.h> #define DIM 50 main() { FILE *fp; /*fp - is a file pointer*/ char componente[20],referencia[10]; int no1,no2,valor1,valor2,l,c,Max=3,count=0; float matrix[DIM][DIM]; /* open the file netlist.txt to read */ fp = fopen( "netlist1.txt", "r" ); if (fscanf(fp,"%20s",&componente)) (componente=='/'); printf("comment found!"); while (fscanf( fp,"\n%2s %s %d %d %d %d\n",&componente,&referencia,&no1,&no2,&valor1,&valor2)!=EOF) printf("\n%s %2s %d %d %d %d\n",componente,referencia,no1,no2,valor1,valor2); { if (no1>Max) Max==no1; printf("%d",&Max);//função de teste para tamanho da matriz } { if (strcmp=='UR') fscanf("%2s%c%d%d%d%d",&componente,&referencia,&no1,&no2,&valor1,&valor2); { if(no1>0 && no2>0) { matrix[no1][no1]+=1/valor2; matrix[no2][no2]+=1/valor2; matrix[no1][no2]-=1/valor2; matrix[no2][no1]-=1/valor2; } else if (no1>0 && no2==0) { matrix[no1][no1]+=1/valor2; } else if (no1==0 && no2>0) { matrix[no1][no1]+=1/valor2; } else printf("error"); } { if (strcmp=='R') fscanf("%2s%c%d%d%d%d",&componente,&referencia,&no1,&no2,&valor1,&valor2); { if(no1>0 && no2>0) { matrix[no1][no1]+=1/valor1; matrix[no2][no2]+=1/valor1; matrix[no1][no2]-=1/valor1; matrix[no2][no1]-=1/valor1; } else if (no1>0 && no2==0) { matrix[no1][no1]+=1/valor1; } else if (no1==0 && no2>0) { matrix[no1][no1]+=1/valor1; } else printf("error"); } { if (strcmp=='I') fscanf("%2s%c%d%d%d%d",&componente,&referencia,&no1,&no2,&valor1,&valor2); { if(no1>0 && no2>0) { matrix[no1][no1]+=1/valor1; matrix[no2][no2]+=1/valor1; matrix[no1][no2]-=1/valor1; matrix[no2][no1]-=1/valor1; } else if (no1>0 && no2==0) { matrix[no1][no1]+=1/valor2; } else if (no1==0 && no2>0) { matrix[no1][no1]+=1/valor2; } else printf("error"); } } } { for(l=0;l<Max;l++) { for(c=0;c<Max;c++) { printf("%f ",matrix[l][c]); } printf("\n"); } } /* close file */ fclose( fp ); } } esta a apareçer a netlist , mas tb devia aparecer uma matriz! não compreendo , até porque o programa nao tem erros. agradeçia a ajuda para resoluçao deste problema , obrigado!
rgcaldas Posted December 6, 2006 at 01:13 AM Report #69098 Posted December 6, 2006 at 01:13 AM Não vi o código todo, mas tens uns { que não estou a entender. 1 - Não sei se era a intenção mas o primeiro printf está fora do if, bem como todo o resto do código, apesar da indentação. 2- o { a seguir ai while não faz parte do while, pois tem o printf pelo meio. 3- depois tens outros blocos de código sem estrutura associada, que também não estou a entender. mas posso ser eu que ainda não cheguei lá.
Hipnoted Posted December 6, 2006 at 10:44 AM Report #69137 Posted December 6, 2006 at 10:44 AM Eu não estou a perceber bem o que pretendes mas desde já te digo que há um erro repetido no teu código: o strcmp A sintaxe é a seguinte: if(strcmp(string1,string2) == 0){ .... Assim compara se as duas strings são iguais. Não podes fazer como tens aí. "Nunca discutas com um idiota. Eles arrastam-te até ao seu nível e depois ganham-te em experiência"
Rui Carlos Posted December 6, 2006 at 11:04 AM Report #69143 Posted December 6, 2006 at 11:04 AM esse código é quase ilegível... e que tal identar isso como deve ser? se tiveres acesso a pc com Linux faz um 'indent' ao ficheiro, que sempre fica mais legível. Rui Carlos Gonçalves
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now