Ir ao conteúdo
  • Cadastre-se

C Mal funcionamento de sequência de If e Else em C


Posts recomendados

Eu estou iniciando programação e comecei em C. Estou enfrentando um problema na sequência de if e else.

Meu código é o seguinte:

#include <stdio.h>
#include<string.h>
#include<stdlib.h>
void main()
{
char jo[7]="joao";
char ca[7]="carlos";
char n[11];


printf("Me diga seu primeiro nome:\n");
scanf("%c", n);


int ret= strcmp(jo,n);
int ret_= strcmp(ca,n);


if (ret==0){
    printf("Seu sobrenome eh Silva.\n");
}
else if (ret_==0){
    printf("Seu sobrenome eh Santos..\n");
}
else
    printf("Nao te conheco.\n");
}

O funcionamento esperado seria:

Perguntar o nome do usuário e, caso fosse carlos ou joao, imprimir seu sobrenome na tela. Mas se fosse qualquer outro imprimiria "nao te conheço".

Mas independente do nomo escrito o programa sempre imprime "nao te conheço".

Alguém pode me dizer onde está o problema no meu código, por favor?

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@Aquiles Augusto   olá , e porque você acredita que o problema seja no if  else  ?  ,    não é neles não  ,  é por quê você colocou o especificador do tipo de variável errado no scanf  ali :

printf("Me diga seu primeiro nome:\n");
scanf("%c", n);        // aqui pega apenas um caractere ou letra


printf("Me diga seu primeiro nome:\n");
scanf("%s", n);        // s de string , aqui pega varios caracteres 
                       // que estejam juntos até encontrar um 
                       // espaço em branco entre eles

printf("Me diga seu primeiro nome:\n");
fgets(n,10,stdin);     // aqui pega até 10 caracteres , mesmo que 
                       // seja espaço em branco
n[strlen(n)-1] = '\0'; // remover o newLine pego pelo fgets
                       // para fazer a comparação
                       // senão não seão iguais

 

  • Curtir 2
  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...

Redes-Wi-Fi-capa-3d-newsletter.png

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!