Ir ao conteúdo
  • Cadastre-se
ThiagoThoz

RESOLVIDO Manipulando Arquivos

Recommended Posts

Eu preciso fazer um programa em C que vai receber dados de um arquivo de entrada, fazer um calculo e escrever a saida em um arquivo de saida

 

 

Ex de entrada:

5  // quantidade de cidades
0 0 100 2 9 // coordenadas x de cada cidade
0 1 45 3 9  // coordenadas y de cada cidade
3 // quantidade de cidades
30 10 20 // coordenadas x de cada cidade
20 10 20 //  coordenadas y de cada cidade
0 // 0 indica final da entrada
 
Saída:
1 2 1.000000 // cidades com menor distancia (primeira entrada) e a distancia entre elas 
1 3 10.000000 //cidades com menor distancia (segunda entrada) e a distancia entre elas
 
A parte de leitura do arquivo e escrita eu sei as funcoes a serem usadas, porém como eu faria para esses dados serem escritos em vetor de inteiros e ele comparar por exemplo posicao x[1] com y[1].(colocando nos vetores a comparacao e o resultado é mais fácil )
 
 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Teria o enunciado do exercicio? pois nao entendi muito bem sua explicação. Se tiver e eu entender posso tentar ajuda-lo.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Visitante

#include <conio.h>

#include <stdlib.h>

 

fopen(...)

fwrite(...)

fread(...)

fclose(...)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu consegui fazer já ...

 

Segue codigo ...

 

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
 
int main()
{
    int tamanho;
    FILE *fp;
    fp = fopen("trembala.dat","r");
    if (fp == NULL){
        printf("\nError.");
        system("PAUSE");
    }else{
        printf("\nO arquivo trembala.dat foi aberto.");
        printf("\n");
        do{
        fscanf(fp, "%d", &tamanho);
        int coorX[tamanho];
        int coorY[tamanho];
        int i, k;
        printf("\n");
        for(i = 0; i< tamanho; i++){
            fscanf(fp, "%d", &coorX);
        }
        for(k = 0; k< tamanho; k++){
            fscanf(fp, "%d", &coorY[k]);
        }
        double aux = 199999;
        int auxA = 0;
        int auxB = 0;
        double valor;
        for(i = 0; i < tamanho; i++){
            for(k = i+1; k< tamanho; k++){
                int a,b,c,d;
                a = coorX;
                b = coorX[k];
                c = coorY[k];
                d = coorY;
                valor = sqrt(pow(b-a,2)+pow(c-d,2));
                if(valor<aux){
                    aux = valor;
                    auxA = i+1;
                    auxB = k+1;
                }
            }
        }
        if(tamanho!=0){
        printf("%d %d %.2f", auxA, auxB, aux);
        }
        }while(tamanho!=0);
    }
    printf("\n\nFechando o arquivo trembala.dat\n\n");
    fclose(fp);
    return 0;
}
 
Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×