-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path12.31f.c
81 lines (69 loc) · 1.04 KB
/
12.31f.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
struct lista {
float info;
struct lista* prox;
};
typedef struct lista Lista;
struct fila {
Lista* ini;
Lista* fim;
};
typedef struct fila Fila;
Fila* fila_cria(void){
Fila* f = (Fila*)malloc(sizeof(Fila));
f->ini=NULL;
f->fim=NULL;
return f;
}
void fila_insere(Fila* f, float v) {
Lista* n = (Lista*)malloc(sizeof(Lista));
n->info=v;
n->prox=NULL;
if (f->fim!=NULL)
f->fim->prox=n;
else
f->ini=n;
f->fim=n;
}
void fila_libera(Fila* f){
Lista* q=f->ini;
while(q!=NULL){
Lista* t=q->prox;
free(q);
q=t;
}
f=q;
}
void fila_imprime(Fila* f){
Lista* q;
if (f!=NULL)
for(q=f->ini;q!=NULL;q=q->prox)
printf("Termo %f \n",q->info);
else
printf("\nFila Vazia\n\n");
}
int main () {
Fila*f;
double pi, N, a;
int i;
f=fila_cria();
pi = 4;
N = 3;
i = 0;
a = 4/N;
while (a >= 0.0001) {
a = 4/N;
if (i == 1) {
pi = pi + a;
fila_insere(f,pi);
i = 0; }
else {
pi = pi - a;
fila_insere(f,pi);
i = 1; }
N = N + 2; }
fila_imprime(f);
fila_libera(f);
}