alex_dino 0 Denunciar post Postado Junho 15, 2009 Tenho um exercicio que é: Escreva um programa que leia 20 nomes e armazena-os em vetores de acordo com as seguintes regras: a) palavras que iniciam pela letra b ou B, guardar no vetB; B) palavras que iniciam pela letra d ou D, guardar no vetD; c) palavras que iniciam pela letra f ou F, guardar no vetF; d) palavras que iniciam pela legra k ou K, guardar no vetK. A montagem dos vetores não deverá deixar espaços em branco entre as posições. Ao final da leitura exibir os 4 vetores. Não sei, mais tenho certeza que fiz errado na parte de guardar as palavras dentro de cada vetor desiguinado.....Como faço para guardar a palavra dentro do vetor? #include<stdio.h> int main (void) { char nomes[10],vet_b[20][10],vet_d[20][10],vet_f[20][10],vet_k[20][10]; int pos=0,letra_b,letra_d,letra_f,letra_k,vetorb=0,vetord=0,vetorf=0,vetork=0; for (pos=0;pos<20;pos++) { printf ("Digite o nome"); gets (nomes); } for (pos=0;pos<20;pos++) { if ((nomes[pos][0]=='b')||(nomes[pos][0]=='B')){ letra_b++; vetorb=vet_b[letra_b]; } if ((nomes[pos][0]=='d')||(nomes[pos][0]=='D')){ letra_d++; vetord=vet_d[letra_d]; } if ((nomes[pos][0]=='f')||(nomes[pos][0]=='F')){ letra_f++; vetorf=vet_f[letra_f]; } if ((nomes[pos][0]=='k')||(nomes[pos][0]=='K')){ letra_k++; vetork=vet_k[letra_k]; } } printf ("vetor com b %d:",vetorb); printf ("vetor com d %d:",vetord); printf ("vetor com f %d:",vetorf); printf ("vetor com k %d:",vetork); system ("pause"); return 0; } Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Junho 16, 2009 como assim Não sei, mais tenho certeza que fiz errado você rodo.. como fico, deu erro?? []s Compartilhar este post Link para o post Compartilhar em outros sites
VictorCacciari 42 Denunciar post Postado Junho 16, 2009 Pois é cara, tem alguns errinhos mesmo... O primeiro que vejo é: gets (nomes); Você está sobrescrevendo a variável nomes a cada iteração. Tome cuidado! Declare como um array de ponteiros para char. nomes[30][10]; //aqui caberão 30 nomes de 10 caractares cadanote que nomes é um ponteiro para um ponteiro para char. você deveria fazer gets(nomes[ indice ]). if ((nomes[pos][0]=='b')||(nomes[pos][0]=='B')){ letra_b++; vetorb=vet_b[letra_b]; } você não pode acessar nomes[int][int], não existe nada ai... letra_b não está inicializado, não tem valor nenhum.... vetorb=vet_b[letra_b] o que é isso?? você quer atribuir um char* em um int? O mesmo ocorre nas outras letras. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Abraços Compartilhar este post Link para o post Compartilhar em outros sites
Giovanni Ritchie 0 Denunciar post Postado Junho 17, 2009 Segue as instruções do Victor e depois poste as dúvidas... Compartilhar este post Link para o post Compartilhar em outros sites