Ir para conteúdo
Fórum Script Brasil
  • 0

Dúvida no guardar uma quantia num vetor


alex_dino

Pergunta

Tenho um programa para fazer 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.

Esse é o meu código:

#include<stdio.h>
int main (void)
{
    char nomes[10][15],vet_b[0],vet_d[0],vet_f[0],vet_k[0];
    int pos=0,letra_b,letra_d,letra_f,letra_k,vetorb=0,vetrod=0,vetorf=0,vetork=0;
    
    for (pos=0;pos<10;pos++)
    {
        printf ("Digite o nome");
        gets (nomes[pos]);
    }
    
    for (pos=0;pos<10;pos++)
    {
        
    if ((nomes[pos][0]=='b')&&(nomes[pos][0]=='B'))
       letra_b++;
       
      }
      vetorb=vet_b[letra_b];
      printf ("vetor com b %d:",vetorb);
      
      
     for (pos=0;pos<10;pos++)
     {
        if ((nomes[pos][0]=='d')&&(nomes[pos][0]=='D'))
           letra_d++;
          
      }
       vetord=vet_d[letra_d];
       printf ("vetor com d %d:",vetord);
       
        for (pos=0;pos<10;pos++)
        {
  
        if ((nomes[pos][0]=='f')&&(nomes[pos][0]=='F'))
           letra_f++;
          
      }
       vetorf=vet_f[letra_f];
      printf ("vetor com f %d:",vetorf);
      
      for (pos=0;pos<10;pos++)
      {
  
        if ((nomes[pos][0]=='k')&&(nomes[pos][0]=='K'))
           letra_k++;
          
      }
       vetork=vet_k[letra_k];
        printf ("vetor com k %d:",vetork);
    
   
    
  
    
    system ("pause");
    return 0;
}
Está com problemas de identação, mais isso eu arrumo quando estiver funcionando. O erro esta dando aqui neste ponto:Isso em todos!!!!
vetord=vet_d[letra_d];

Aonde estou errando??????????

Editado por alex_dino
Link para o comentário
Compartilhar em outros sites

10 respostass a esta questão

Posts Recomendados

  • 0

Aumentei, agora ele até leu os 10 nomes, mais ele não tá contando.

#include<stdio.h>
int main (void)
{
    char nomes[10][15],vet_b[10],vet_d[10],vet_f[10],vet_k[10];
    int pos=0,letra_b,letra_d,letra_f,letra_k,vetorb=0,vetord=0,vetorf=0,vetork=0;
    
    for (pos=0;pos<10;pos++)
    {
        printf ("Digite o nome");
        gets (nomes[pos]);
    }
    
    for (pos=0;pos<10;pos++)
    {
        
    if ((nomes[pos][0]=='b')&&(nomes[pos][0]=='B'))
       letra_b++;
       
      }
      vetorb=vet_b[letra_b];
      printf ("vetor com b %d:",vetorb);
      
      
     for (pos=0;pos<10;pos++)
     {
        if ((nomes[pos][0]=='d')&&(nomes[pos][0]=='D'))
           letra_d++;
          
      }
       vetord=vet_d[letra_d];
       printf ("vetor com d %d:",vetord);
       
        for (pos=0;pos<10;pos++)
        {
  
        if ((nomes[pos][0]=='f')&&(nomes[pos][0]=='F'))
           letra_f++;
          
      }
       vetorf=vet_f[letra_f];
      printf ("vetor com f %d:",vetorf);
      
      for (pos=0;pos<10;pos++)
      {
  
        if ((nomes[pos][0]=='k')&&(nomes[pos][0]=='K'))
           letra_k++;
          
      }
       vetork=vet_k[letra_k];
        printf ("vetor com k %d:",vetork);
    
   
    
  
    
    system ("pause");
    return 0;
}

Link para o comentário
Compartilhar em outros sites

  • 0

Tpw cara vocÊ não acha melhor transformar a matriz em 1 vetor de 20posições?? e pra que varios "for" si você póde fazer em 1 só?

e outra não ta contando porque você ta botando

if ((nomes[pos][0]=='k')&&(nomes[pos][0]=='K'))

Só vai armazenar si a 1 letra for K e também k

Conclusao: Impossivel

if ((nomes[pos]=='k')||(nomes[pos]=='K'))

&& = e

|| = ou

Outra.. tenta fazer com vetor pra mim e mais facil

dai si entrar na condição vocÊ joga esse nome pra outro vetor que armazena os nomes K!

Ta meio confuso ^^ mais tenta intender ae!

Link para o comentário
Compartilhar em outros sites

  • 0

Dei uma arrumada, mais não entendi o que você disse, não poderia colocar como código para mim entender??????

#include<stdio.h>
int main (void)
{
    char nomes[10][15],vet_b[10],vet_d[10],vet_f[10],vet_k[10];
    int pos=0,letra_b,letra_d,letra_f,letra_k,vetorb=0,vetord=0,vetorf=0,vetork=0;
    
    for (pos=0;pos<10;pos++)
    {
        printf ("Digite o nome");
        gets (nomes[pos]);
    }
    
    for (pos=0;pos<10;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;
}

Editado por alex_dino
Link para o comentário
Compartilhar em outros sites

  • 0

Olha resumi seu codigo para a letra B usando a variavel NOME como um vetor...

Sou novo ainda em C mais to tentando ajudar ao maximo..

#include<stdio.h>

int main ()

{

char nomes[30];

int pos=0,contb=0;

for (pos=0;pos<20;pos++)

{

printf ("Digite o nome");

gets (nomes);

// Pular linha

if ((nomes[0]=='b')||(nomes[0]=='B'))

{

contb=contb+1;

}

// Pular linha

}

// Pular linha

printf (" Total de palavras com letra b: %d ",contb);

system ("pause");

return 0;

}

Abraço

Link para o comentário
Compartilhar em outros sites

  • 0

calma ae vou postar um codigo 1min

#include<stdio.h>

int main ()

{

system ("color 1a");

char nomes[30];

int pos=0,contb=0,contd=0,contf=0,contk=0;

//

for (pos=0;pos<20;pos++)

{

printf ("\n Digite o Nome: ");

gets (nomes);

//

if ((nomes[0]=='b')||(nomes[0]=='B'))

{

contb=contb+1;

}

else

if ((nomes[0]=='d')||(nomes[0]=='D'))

{

contd=contd+1;

}

else

if ((nomes[0]=='f')||(nomes[0]=='F'))

{

contf=contf+1;

}

else

if ((nomes[0]=='k')||(nomes[0]=='K'))

{

contk=contk+1;

}

//

}

//

printf ("\n Total de palavras com letra b: %d ",contb);

printf ("\n Total de palavras com letra d: %d ",contd);

printf ("\n Total de palavras com letra f: %d ",contf);

printf ("\n Total de palavras com letra k: %d \n",contk);

system ("pause");

return 0;

}

Vê si é isso que você quer

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...