View difference between Paste ID: LU9RNv6B and nfVCM9An
SHOW: | | - or go back to the newest paste.
1
#include <stdio.h>
2
#include <stdlib.h>
3-
 
3+
4
struct Ponto
5
{
6-
    float x;
6+
	float x;
7-
    float y;
7+
	float y;
8-
    struct ponto *prox;
8+
	struct Ponto *prox;
9
};
10-
 
10+
11
typedef struct Ponto ponto;
12-
 
12+
13
void inicia_lista(ponto *lista)
14
{
15-
    lista->prox = NULL;
15+
	lista->prox = NULL;
16
}
17-
 
17+
18
void auxiliar(ponto *lista, int i)
19
{
20-
    FILE *fp;
20+
	FILE *fp;
21-
    fp=fopen("dados", "r");
21+
	fp=fopen("dados", "r");
22-
 
22+
     
23-
    ponto *novo=(ponto*) malloc(sizeof(ponto));
23+
	char linha[100];
24-
 
24+
25-
    char linha[100];
25+
	ponto *tmp=lista;
26-
 
26+
	while(tmp->prox != NULL)
27-
    ponto *tmp=lista;
27+
	{
28-
    while(tmp->prox != NULL)
28+
		tmp=tmp->prox;
29-
    {
29+
	}
30-
        tmp=tmp->prox;
30+
     
31-
    }
31+
	ponto *novo=(ponto*) malloc(sizeof(ponto));
32-
 
32+
33-
    tmp->prox=novo;
33+
	inicia_lista(novo); //faltava esta linha, ao fazeres malloc por alguma razao o proximo nao fica com valor nulo, no entanto age como se o fosse mas nunca verifica com o != NULL
34-
 
34+
     
35-
    while(i>0)
35+
	tmp->prox=novo;
36-
    {
36+
     
37-
        fgets(linha, 100, fp);
37+
	while(i>0)
38-
        i--;
38+
	{
39-
    }
39+
		fgets(linha, 100, fp);
40-
 
40+
		i--;
41-
    fscanf(fp, "%f %f \n", &novo->x, &novo->y);
41+
	}
42-
    printf("%f %f \n", novo->x, novo->y);
42+
     
43-
    sleep(1);
43+
	fscanf(fp, "%f %f \n", &novo->x, &novo->y);
44-
    fclose(fp);
44+
	printf("%f %f \n", novo->x, novo->y);
45
	//sleep(1);
46-
 
46+
	fclose(fp);
47
}
48
     
49-
    sleep(1);
49+
50-
    FILE *fp;
50+
51-
    fp=fopen("dados", "r");
51+
	//sleep(1);
52-
 
52+
	FILE *fp;
53-
    FILE *ficheiro;
53+
	fp=fopen("dados", "r");
54-
    ficheiro=fopen("linhas", "r");
54+
     
55-
    int a, i=1;
55+
	FILE *ficheiro;
56-
    fscanf(ficheiro, "%i", &a);
56+
	ficheiro=fopen("linhas", "r");
57-
    fclose(ficheiro);
57+
	int a, i=1;
58-
 
58+
	fscanf(ficheiro, "%i", &a);
59-
    char linha[100];
59+
	fclose(ficheiro);
60-
    fgets(linha, 100, fp);
60+
     
61-
 
61+
	char linha[100];
62-
    ponto *novo=(ponto*) malloc(sizeof(ponto));
62+
	fgets(linha, 100, fp);
63-
    lista->prox=novo;
63+
     
64-
 
64+
	fscanf(fp, "%f %f \n", &lista->x, &lista->y);
65-
    fscanf(fp, "%f %f \n", &novo->x, &novo->y);
65+
	printf("%f %f \n", lista->x, lista->y);
66-
    printf("%f %f \n", novo->x, novo->y);
66+
67-
    sleep(1);
67+
	/*ponto *novo=(ponto*) malloc(sizeof(ponto));
68-
    fclose(fp);
68+
	lista->prox=novo;
69-
    while(i<a)
69+
     
70-
    {
70+
	fscanf(fp, "%f %f \n", &novo->x, &novo->y);
71-
        i++;
71+
	printf("%f %f \n", novo->x, novo->y);*/
72-
        auxiliar(lista, i);
72+
//	sleep(1);
73-
    }
73+
	fclose(fp);
74
	while(i<a)
75-
 
75+
	{
76
		i++;
77
		auxiliar(lista, i);
78-
    ponto *lista=(ponto*) malloc(sizeof(ponto));
78+
	}
79-
    inicia_lista(lista);
79+
80-
    le_ficheiro(lista);
80+
     
81
int main()
82
{
83
	ponto *lista=(ponto*) malloc(sizeof(ponto));
84
	inicia_lista(lista);
85
	le_ficheiro(lista);
86
}