mdtanos 0 Denunciar post Postado Dezembro 4, 2011 Galera to tentando fazer um exercício pra faculdade, comecei a pensar como iria fazer mas o programa já ta com problema, a função inserir não lê o ultimo campo, que eh salário, não tenho nem ideia do porquê. o enunciado do exercício é esse: Escreva um programa em C que manipule um vetor de registros (estruturas) com dados de10 trabalhadores de uma empresa, conforme a estrutura a seguir: int id; char nome[30]; char sexo; float salario; O programa deve ter as seguintes funções: uma função para ler os dados dos 10 funcionários. uma função para exibir os dados dos 10 funcionários. uma função que receba como parâmetro, um caractere correspondente ao sexo para exibiros dados somente dos funcionários do respectivo sexo. uma função que atualize o salário de todos os funcionários de acordo com o percentualinformado como parâmetro. Meu código por enquanto: #include <stdio.h> void inserir(); typedef struct trabdados{ int id; char nome[30]; char sexo; float salario; }trabdata; main(){ trabdata vetor[10]; inserir(vetor); printf("%d\n",vetor[0].id); return 0; } void inserir(trabdata* vetor){ int i=0; scanf("%d", &vetor[i].id); scanf("%s", vetor[i].nome); scanf("%c", &vetor[i].sexo); scanf("%f", &vetor[i].salario); } Compartilhar este post Link para o post Compartilhar em outros sites
Shurd 0 Denunciar post Postado Dezembro 4, 2011 coloca um getchar entre o scanf da string e do caracter. Compartilhar este post Link para o post Compartilhar em outros sites
mdtanos 0 Denunciar post Postado Dezembro 4, 2011 um getchar sozinho ?? como assim ?? Compartilhar este post Link para o post Compartilhar em outros sites
Shurd 0 Denunciar post Postado Dezembro 4, 2011 scanf("%d", &vetor[i].id); scanf("%s", vetor[i].nome); getchar(); scanf("%c", &vetor[i].sexo); scanf("%f", &vetor[i].salario); Compartilhar este post Link para o post Compartilhar em outros sites
mdtanos 0 Denunciar post Postado Dezembro 4, 2011 funcionou.. queria saber o pq... pode dizer ? Compartilhar este post Link para o post Compartilhar em outros sites
Shurd 0 Denunciar post Postado Dezembro 4, 2011 Problema de buffer, as vezes o buffer fica "sujo" ai ele pega a resposta de alguma das outras e coloca na ultima sozinho, sempre que voce usar strings ou caracteres com scanf é bom usar getchar() Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Dezembro 6, 2011 temos um tópico específico, falando sobre essa sujeira de buffer. []s Compartilhar este post Link para o post Compartilhar em outros sites