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

[DUVIDA / C] Problema com MATRIZ


GabrielCardelli

Pergunta

#include <stdio.h>
#include <stdlib.h>
int main ()
{
    char teste[3][4];
    int countl,countc;
    for (countl=0; countl<=3;countl++)
    {
        for (countc=0;countc<=4;countc++)
        {
        printf ("digite um nome: ");
        scanf ("%s",&teste[countl][countc]);
        printf (" Nome: %s foi armazenado na posicao %d %d ", teste[countl][countc],countl,countc);
        }
    }
    system ("pause");
    return (0);
}

eu criei uma matriz 3x4

Qro armazenar nomes nela mais n consigo!!em algum lugar ta com erro alguém me ajuda?

Abraço gente obrigado desde já

Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0

Só complementando a resposta do Durub:

Na matriz teste[3][4] é possível armazenar três strings de tamanho 4, ou seja 3 strings de trÊs caracteres, pois o último caractere é o ''.

Por exemplo:

#include <stdio.h>
#include <time.h>

int main(void){
    
    char nomes[3][4] = {"abc", "def", "ghi"};
    int i;
    
    for (i = 0; i < 3; i++)
    {
        printf("%s\n", nomes[i]);
    }
          
   return 0;
}

Por isso, a matriz postada pelo Durub na verdade só armazenará 31 caracteres.

Link para o comentário
Compartilhar em outros sites

  • 0

na verdade meu erro continua =/

#include <stdio.h>
#include <stdlib.h>
int main ()
{
    char teste[3][4][32];
    int countl,countc,countm;
    for (countm=0;countm<=32;countm++)
    {
    for (countl=0; countl<=3;countl++)
        {
        for (countc=0;countc<=4;countc++)
               {
        printf ("digite um nome: ");
        scanf ("%s",&teste[countl][countc][countm]);
        printf ("\n\n Nome: %s foi armazenado na posicao %d %d %d \n\n ", teste[countl][countc][countm],countl,countc,countm);
               }
        }
    }
    getchar();
    return (0);
}

Caso se alguém puder me ajudar agradeço desde já!

Link para o comentário
Compartilhar em outros sites

  • 0

você errou na ordem dos loops e no scanf

Você quer o quê? Um vetor de strings?

Primeiro entenda bem o que é UMA string. Depois você pensa em vetor de string.

Em C, strings não existem, são apenas representadas por vetores de caracteres, terminados em NULL ('')

char nomes[30]
Isso cria UMA string de 29 caracteres. Para ler uma string assim:
fgets(nome, TAM_MAXIMO, stdin);
char [4][30]
Isso cria um vetor de quatro posições, cada uma podendo conter uma string de 29 caracteres Para ler um vetor de strings assim:
fgets(nomes[indice], TAM_MAXIMO, stdin);
char nomes[3][4][30]
Isso é um vetor de vetores de string. Bem pouco usado. Mas se quiser ler um vetor assim:
fgets(nomes[indice1][indice2], TAM_MAXIMO, stdin);

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

  • 0

BEraldo é o seguinte

Eu queria exemplo

Uma MATRIZ

3 x 10

No caso nela caberiam 30valores

E eu ir alocando palavras nela...

Ai o Durum disse pra eu por mais 1 [] com 32 pra aumentar o tamanho pra eu poder armazenar palavras ai agora eu to meio perdido.

Abraço obrigado!

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...