Ir para conteúdo
Fórum Script Brasil

tek6

Membros
  • Total de itens

    6
  • Registro em

  • Última visita

Sobre tek6

tek6's Achievements

0

Reputação

  1. Olá pessoal, alguém pode me ajudar a como inverter uma lista encadeada simples em C? Fico grato desde já com qualquer ajuda!
  2. tek6

    Problemas com struct

    Marcelo vlw pela paciencia e a explicaçao! Muito obrigado!
  3. tek6

    Problemas com struct

    Resolver em partes. também não sei tlhe explicar como ficou, se você pudesse executar iria ver como ficou.
  4. tek6

    Problemas com struct

    Olá pessoal! Não entendo o problema desse código. O problema está na hora q eu vo ler o segundo registro, por exemplo: emp[1].nome elá passa direto para o campo dataNasc. Como pode ver usei o fflush(stdin); mas não resolveu meu problema. Estou copilando pelo gcc. #include <stdio.h> #include <stdlib.h> struct cadastro { char nome[20]; int dataNasc[3]; int salario; }; int main(void) { struct cadastro emp[3]; int i; //Contador // Ler dados para a strcut for (i = 0; i < 3; i++) { printf ("Digite o nome: "); fflush(stdin); gets(emp[i].nome); printf ("Digite a data de nascimento: "); scanf ("%d/%d/%d", &emp[i].dataNasc[0], &emp[i].dataNasc[1], &emp[i].dataNasc[2]); printf ("Digite o seu salário: "); scanf ("%d", &emp[i].salario); } // Escreve o que foi lido for (i = 0; i < 3; i++) { printf ("%s\n", emp[i].nome); printf ("%0d/%0d/%0d\n", emp[i].dataNasc[0], emp[i].dataNasc[1], emp[i].dataNasc[2]); printf ("%d\n\n", emp[i].salario); } return 0; }
  5. #include <stdio.h> #include <stdlib.h> #include <malloc.h> typedef struct Pessoa { char nome[20]; int dataNasc[3]; int telefone; } pessoa; //Preenche o cadastro - OPERADOR SETA -> void preencher(pessoa *cadastro) { printf ("Digite um nome: "); gets (cadastro->nome); printf ("Digite a data de nascimento: "); scanf ("%d/%d/%d", &cadastro->dataNasc[0], &cadastro->dataNasc[1], &cadastro->dataNasc[2]); printf ("Digite o numero do celular: "); scanf ("%d", &cadastro->telefone); } //Mostra o cadastro void mostrar(pessoa *cadastro) { printf ("%s\n", cadastro->nome); printf ("%02d/%02d/%d\n", cadastro->dataNasc[0], cadastro->dataNasc[1], cadastro->dataNasc[2]); printf ("%d\n", cadastro->telefone); printf ("\n"); } //Inicializa as estruturas.nome[0] com '' void inicia(pessoa *cadastro, int tamanho) { register int i; for (i = 0; i < tamanho; i++) { cadastro[i].nome[0] = ''; } } int main(void) { pessoa *cadastro = NULL; int i, qtde; printf ("Digite a quantidade "); scanf ("%d", &qtde); fflush(stdin); //Aloca x espaço para cadastro cadastro = malloc(sizeof(pessoa) * qtde); //Testa se realmente foi alocado if (!(cadastro = malloc(qtde))) { printf ("não alocou."); exit(1); } inicia(cadastro, qtde); for (i = 0; i < qtde; i++) { fflush(stdin); preencher(&cadastro[i]); //Passo o endereço de cadastro para a função } for (i = 0; i < qtde; i++) { mostrar(&cadastro[i]); //Passo o endereço de cadastro para a função } return 0; } Consertei, compilo. Mas ainda tem um erro, não consigo escrever em cadastro->nome. Já tentei inicicalizar esse campo com a funçao inicia , mas nada. Me ajuda de novo por favor!
  6. Boa Noite! Não intendo o erro desse código: struct.c: Na função ‘main’: struct.c:50:2: aviso: passing argument 1 of ‘inicia’ from incompatible pointer type [habilitado por padrão] struct.c:27:6: nota: expected ‘struct pessoa *’ but argument is of type ‘struct pessoa **’ Ficarei grato se me ajudarem! #include <stdio.h> #include <stdlib.h> #include <malloc.h> typedef struct Pessoa { char nome[20]; int dataNasc[3]; int telefone; } pessoa; //Preenche o cadastro - OPERADOR SETA -> void preencher(pessoa *cadastro) { printf ("Digite um nome: "); gets (cadastro->nome); printf ("Digite a data de nascimento: "); scanf ("%d/%d/%d", &cadastro->dataNasc[0], &cadastro->dataNasc[1], &cadastro->dataNasc[2]); printf ("Digite o numero do celular: "); scanf ("%d", &cadastro->telefone); } //Mostra o cadastro void mostrar(pessoa *cadastro) { printf ("%s\n", cadastro->nome); printf ("%02d/%02d/%d\n", cadastro->dataNasc[0], cadastro->dataNasc[1], cadastro->dataNasc[2]); printf ("%d\n", cadastro->telefone); printf ("\n"); } //Inicializa as estruturas.nome[0] com '' void inicia(pessoa *cadastro, int tamanho) { register int i; for (i = 0; i < tamanho; i++) { cadastro[i].nome[0] = ''; } } int main(void) { pessoa *cadastro = NULL; int i, qtde; printf ("Digite a quantidade "); scanf ("%d", &qtde); fflush(stdin); //Aloca x espaço para cadastro cadastro = malloc(sizeof(pessoa) * qtde); //Testa se realmente foi alocado if (!(cadastro = malloc(qtde))) { printf ("não alocou."); exit(1); } inicia(&cadastro, qtde); for (i = 0; i < qtde; i++) { fflush(stdin); preencher(&cadastro[i]); //Passo o endereço de cadastro para a função } for (i = 0; i < qtde; i++) { mostrar(&cadastro[i]); //Passo o endereço de cadastro para a função } return 0; }
×
×
  • Criar Novo...