Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #define max 50
- typedef struct data{
- int dia, mes, ano;
- }Data;
- typedef struct candidato{
- int n_inscr;
- char nome[51];
- float nota;
- Data *nasc;
- }Cand;
- Cand** init_mvet(int a);
- Data* init_data(int a, int b, int c);
- Cand* new_cand(Cand** tab, int *y);
- void imprime_cands(Cand** tab, int tamanho);
- void imprime_data(Data* d);
- void limpar_tela();
- void limpar_memo(Cand** tab,int *tamanho);
- int main(void){
- Cand** vet;
- Cand* cands[50];
- int ncands=0,a = max;
- vet = init_mvet(a);
- cands[ncands] = new_cand(vet,&ncands);
- cands[ncands] = new_cand(vet,&ncands);
- cands[ncands] = new_cand(vet,&ncands);
- limpar_tela();
- imprime_cands(vet,ncands);
- limpar_memo(vet,&ncands);
- printf("%d",ncands);
- return 0;
- }
- Cand** init_mvet(int a){
- Cand** vet;
- int i;
- vet = (Cand**)malloc(a*sizeof(Cand*));
- for(i=0;i<a;i++){
- vet[i] = NULL;
- }
- return vet;
- }
- Data* init_data(int a,int b,int c){
- Data* d;
- d = (Data*)malloc(sizeof(Data));
- d -> dia = a;
- d -> mes = b;
- d -> ano = c;
- return d;
- }
- Cand* new_cand(Cand** tab, int *y){
- int a,b,c,n;
- float grade;
- if(tab[*y] == NULL){
- tab[*y] = (Cand *)malloc(sizeof(Cand));
- }
- printf("Insira o nome do candidato.\n");
- getchar();
- fgets(tab[*y] -> nome,51,stdin);
- printf("Insira o numero de inscricao do candidato.\n");
- scanf("%d",&n);
- printf("Insira em seguida o Dia, MÃĒs e Ano de nascimento do Candidato.\n");
- scanf("%d %d %d",&a,&b,&c);
- printf("Agora insira a nota do candidato.\n");
- scanf("%f",&grade);
- tab[*y] -> n_inscr = n;
- tab[*y] -> nasc = init_data(a,b,c);
- tab[*y] -> nota = grade;
- *y = (*y) + 1;
- return tab[*y];
- }
- void imprime_data(Data* d){
- printf("Data de Nascimento %d/%d/%d\n",d -> dia,d -> mes,d -> ano);
- }
- void imprime_cands(Cand** tab, int tamanho){
- int i;
- for(i=0; i<tamanho; i++){
- printf("%s",tab[i] -> nome);
- printf("%.1f\n",tab[i] -> nota);
- printf("%d\n",tab[i] -> n_inscr);
- imprime_data(tab[i] -> nasc);
- }
- }
- void limpar_tela(){
- int i;
- for(i=0; i<50; i++){
- printf("\n");
- }
- }
- void limpar_memo(Cand** tab, int *tamanho){
- int i;
- for(i=0; i<*tamanho; i++){
- free(tab[i]);
- }
- *tamanho = 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement