Ir ao conteúdo

Posts recomendados

Postado

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
Postado

@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

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