Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

alex_dino

vetor

Recommended Posts

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

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

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 cada
note 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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.