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
- Subject: RE: Entrada de Dados
- From: Alfredo Goldman <gold@ime.usp.br>
- Date: Thu, 13 Jun 2002 18:29:54 -0300
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