Lista de discuss�o de MAC 2301


[Pr�via por Data][Pr�xima por Data]
[Pr�via por Assunto][Pr�xima por Assunto]
[�ndice por Data][�ndice por Assunto]
[Envie uma nova mensagem para a lista] [Responda esta mensagem]

RE: Entrada de Dados



Caros Alunos,
      Para que voc�s n�o digam que eu n�o quero ajud�-los, vou
rsponder com c�digo uma das d�vidas do Andr�:

Alfredo

 > Professor ve se vc pode me ajudar. N�o lembro direito como se manipula
 > arquivos de texto em C, lembro s� que tenho que usar fopen, fscanf,
 > fprintf.... qualquer dica � lucro.

Ai vai um trecho do programa da Marina:

void main(int argc, char **argv) {
   int i, j, tmp, k, n;
   FILE *arquivo;
   no *raiz;
   char *bits, *vinicial, *vfinal;

   if (argc < 2) {
      printf("Uso: %s <arquivo>\n", argv[0]);
      exit(0);
   }   

   /** Abertura do arquivo de entrada **/
   arquivo = fopen(argv[1], "r");

   if (arquivo == NULL) {
      printf("Erro na abertura do arquivo\n");
      exit(0);
   }

   /** Leitura do k **/
   fscanf(arquivo, "%d", &k);
 
   /** Leitura da raiz da arvore **/
   bits = (char *) malloc(sizeof(char) * k + 1);
   fscanf(arquivo, "%s", bits);
....

   for (i = 0; i < n; i++)
      for (j = 0; j < n; j++) {
         fscanf(arquivo, "%d", &tmp);
         A[i][j] = tmp;

 > Quanto a segunda parte do EP, veja se minha solu��o tem futuro. Para a
 > aresta 001-011 por exemplo, eu abro a matriz de dados e vejo para o no 000
 > (1.a coluna) suas mensagens, para tanto crio sua arvore(com 000 como raiz)
 > e vejo se nela esta a aresta 001-011, neste caso e positivo o
 > resultado.Pego entao a sub-arvore com raiz 011(n� inferior da aresta),
 > confiro ent�o para cada mensagem enviada se o n� destino esta contido nesta
 > sub-arvore, em caso positivo somo o tamanho da mensagem.
Sim, tem bastante futuro

 > Algumas dificuldades encontradas: Como criar uma matriz em aloca��o
 > dinamica.
N�o � dif�cil. Mas se voc� fizer uma matriz fixa a Marina n�o vai descontar
mais do que 2 pontos...

 > O Algoritmo de busca e meio chatinho....
Chatinho sim, dif�cil n�o...


Alfredo