#include <stdio.h>
#include <stdlib.h>
#define MAX 3
typedef struct alunos {
int matricula;
char nome[30];
float nota1, nota2;
} Alunos;
typedef struct lista {
int quant;
Alunos dados[MAX];
} Lista;
Lista* cria_Lista() {
Lista
* l
= malloc(sizeof(Lista
)); if (l != NULL) l->quant = 0;
return l;
}
void libera_Lista(Lista* l) {
}
int insere_final(Lista* l, Alunos al) {
if (l == NULL) { // || lista_Cheia(l)) { --- tirei porque a função não existe
return 0;
}
l->dados[l->quant] = al;
l->quant++;
return 1;
}
int insere_inicio(Lista *l, Alunos al) {
if (l == NULL) { // || lista_Cheia(l)) { --- tirei porque a função não existe
return 0;
}
for (int i = l->quant - 1; i >= 0; i--) {
l->dados[i + 1] = l->dados[i];
l->dados[0] = al;
l->quant++;
}
l->dados[0] = al;
l->quant++;
return 1;
}
void imprime_lista(Lista* l) {
if (l == NULL) return;
for(int i = 0; i < l->quant; i++) {
printf("Matricula: %d\n", l
->dados
[i
].
matricula); printf("Nome: %s\n", l
->dados
[i
].
nome); printf("Notas: %f %f\n", l
->dados
[i
].
nota1, l
->dados
[i
].
nota2); }
}
int main() {
Alunos al[2] = {{3, "João", 8.45, 9.98}, {1, "Maria", 6.75, 8.54}};
Lista *l = cria_Lista();
for (int i = 0; i < 2; i++) {
insere_inicio(l, al[i]);
imprime_lista(l);
}
libera_Lista(l);
}
//https://pt.stackoverflow.com/q/157781/101
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCiNkZWZpbmUgTUFYIDMKCnR5cGVkZWYgc3RydWN0IGFsdW5vcyB7CiAgICBpbnQgbWF0cmljdWxhOwogICAgY2hhciBub21lWzMwXTsKICAgIGZsb2F0IG5vdGExLCBub3RhMjsKfSBBbHVub3M7Cgp0eXBlZGVmIHN0cnVjdCBsaXN0YSB7CiAgICBpbnQgcXVhbnQ7CiAgICBBbHVub3MgZGFkb3NbTUFYXTsKCn0gTGlzdGE7CgpMaXN0YSogY3JpYV9MaXN0YSgpIHsKICAgIExpc3RhKiBsID0gbWFsbG9jKHNpemVvZihMaXN0YSkpOwogICAgaWYgKGwgIT0gTlVMTCkgbC0+cXVhbnQgPSAwOwogICAgcmV0dXJuIGw7Cn0KCnZvaWQgbGliZXJhX0xpc3RhKExpc3RhKiBsKSB7CiAgICBmcmVlKGwpOwp9CgppbnQgaW5zZXJlX2ZpbmFsKExpc3RhKiBsLCBBbHVub3MgYWwpIHsKICAgIGlmIChsID09IE5VTEwpIHsgLy8gfHwgbGlzdGFfQ2hlaWEobCkpIHsgLS0tIHRpcmVpIHBvcnF1ZSBhIGZ1bsOnw6NvIG7Do28gZXhpc3RlCiAgICAgICAgcmV0dXJuIDA7CiAgICB9CiAgICBsLT5kYWRvc1tsLT5xdWFudF0gPSBhbDsKICAgIGwtPnF1YW50Kys7CiAgICByZXR1cm4gMTsKfQoKaW50IGluc2VyZV9pbmljaW8oTGlzdGEgKmwsIEFsdW5vcyBhbCkgewogICAgaWYgKGwgPT0gTlVMTCkgeyAvLyB8fCBsaXN0YV9DaGVpYShsKSkgeyAtLS0gdGlyZWkgcG9ycXVlIGEgZnVuw6fDo28gbsOjbyBleGlzdGUKICAgICAgICByZXR1cm4gMDsKICAgIH0KICAgIGZvciAoaW50IGkgPSBsLT5xdWFudCAtIDE7IGkgPj0gMDsgaS0tKSB7CiAgICBwcmludGYoIm9rIik7CiAgICAgICAgbC0+ZGFkb3NbaSArIDFdID0gbC0+ZGFkb3NbaV07CiAgICAgICAgbC0+ZGFkb3NbMF0gPSBhbDsKICAgICAgICBsLT5xdWFudCsrOwogICAgfQogICAgbC0+ZGFkb3NbMF0gPSBhbDsKICAgIGwtPnF1YW50Kys7CiAgICByZXR1cm4gMTsKfQoKdm9pZCBpbXByaW1lX2xpc3RhKExpc3RhKiBsKSB7CiAgICBpZiAobCA9PSBOVUxMKSByZXR1cm47CiAgICBmb3IoaW50IGkgPSAwOyBpIDwgbC0+cXVhbnQ7IGkrKykgewogICAgICAgIHByaW50ZigiTWF0cmljdWxhOiAlZFxuIiwgbC0+ZGFkb3NbaV0ubWF0cmljdWxhKTsKICAgICAgICBwcmludGYoIk5vbWU6ICVzXG4iLCBsLT5kYWRvc1tpXS5ub21lKTsKICAgICAgICBwcmludGYoIk5vdGFzOiAlZiAlZlxuIiwgbC0+ZGFkb3NbaV0ubm90YTEsIGwtPmRhZG9zW2ldLm5vdGEyKTsKICAgIH0KfQoKaW50IG1haW4oKSB7CiAgICBBbHVub3MgYWxbMl0gPSB7ezMsICJKb8OjbyIsIDguNDUsIDkuOTh9LCB7MSwgIk1hcmlhIiwgNi43NSwgOC41NH19OwogICAgTGlzdGEgKmwgPSBjcmlhX0xpc3RhKCk7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IDI7IGkrKykgewogICAgICAgIGluc2VyZV9pbmljaW8obCwgYWxbaV0pOwogICAgICAgIGltcHJpbWVfbGlzdGEobCk7CiAgICB9CiAgICBsaWJlcmFfTGlzdGEobCk7Cn0KCi8vaHR0cHM6Ly9wdC5zdGFja292ZXJmbG93LmNvbS9xLzE1Nzc4MS8xMDE=