Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Renanzinthhh

Erro durante a compilação de um programa

Recommended Posts

Gente, fiz o código aqui do programa abaixo, só que na hora de compilar da erro, olhei olhei e ao meu ver não consegui identifcar, será que o erro foi na parte lógica?

 

Az9ffEr.png

#include <stdio.h>#include <string.h>#include <stdlib.h>	int main()		{			char nomes[3][10], letra;			int i, cont = 0;						for (i=0; i<3; i++)				{					printf("Digite um nome: ");					fgets(nomes[i],10,stdin);				}							printf("Digite uma letra: ");			scanf("%c", &letra);						for (i=0; i<3; i++)				{					if(nomes[i] == letra)						cont++;				}			printf("O nome %s possui %d %c", nomes[i], cont, letra);					system("pause");		return 0;	}

Compartilhar este post


Link para o post
Compartilhar em outros sites

nessa linha if ( nomes == letra ) você esta comparando um ponteiro com uma letra.

 

imagine uma folha de papel do seu caderno, ela tem varias linhas não é? em cada linha você pode escrever uma x quantidade de letras. então pense assim

const int linhas = 10;

const int letras = 30;

você tem uma folha com 10 linhas e em cada linha você pode escrever até 30 letras. quando você faz nomes == letra, você esta fazendo linha == letra... você compara toda uma linha com uma só letra, é meio como comparar azeitonas com uma melancia XD. O erro é por que nomes na realidade é um ponteiro que indica onde começa cada linha, nomes[0] é a primeira linha, nomes[1] a segunda e assim consecutivamente. para comparar uma letra em uma linha você precisa fazer nomes[x] == letra, então você estará comparando a letra com a letra X da linha i. ok? Use um for double para isso. Sorte.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Então, eu consegui fazer, sendo que a variável cont, ela ta fazendo a contagem, sendo que ela armazena um valor e dps soma + outro, ou seja

o primeiro nome tem 1 a

o segundo tem 2 a, ele pega o 2 e soma +1 ou seja, aparece 3...

Editado por Renanzinthhh

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário






Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×