Stack Overflow em Português Asked by Diego Roney on January 4, 2022
Como faria nesse código pra pegar o sexo da pessoa e exibir no printf()
?
Já vi muitas atividades em que na condição do if
, se usava muito números e me bateu uma dúvida: E se fosse com letras?
#include <stdio.h>
#include <string.h>
int main()
{
char sex[5], nome[200], f, m;
printf("n Digite o seu nome: " ); //pegar o nome da pessoa
scanf(" %[^n]s", &nome);
printf("n Digite seu sexo f ou m: "); //pegar o sexo da pessoa
scanf("%s", &sex);
if(sex == m)
{
printf(" bem vindo Senhor %sn", nome); // se for homem
}
if (sex == f)
{
printf(" Bem vinda Senhora %sn", nome); // sefor mulher
}
else
{
printf("n ERRO! n");
}
getchar();
return 0;
}
Você pode fazer
char sex;
Quando for pegar o valor use scanf("%c",&sex)
ou scanf("%s",&sex)
e para comparar você usa if(sex == 'm')
use aspas simples pois é somente um caractere.
#include <stdio.h>
int main() {
char sex;
printf("Digite seu sexo f ou m:");
scanf("%c", &sex);
if (sex == 'm') printf("Masculino");
}
Answered by Felipe Henrique on January 4, 2022
Neste caso só precisa uma caractere, não precisa mais que isto, conforme o código já mostra. Então não muda quase nada.
#include <stdio.h>
int main() {
char sex, nome[200];
printf("Digite o seu nome: ");
scanf(" %[^n]s", nome);
printf("nDigite seu sexo f ou m:"); //pegar o sexo da pessoa
scanf("%c", &sex);
if (sex == 'm' || sex == 'M') printf("Bem vindo Senhor %sn", nome);
else if (sex == 'f' || sex == 'F') printf("Bem vinda Senhora %sn", nome);
else printf("n ERRO! n");
}
Veja funcionando no ideone. E no repl.it. Também coloquei no GitHub para referência futura.
Se quiser lidar com a palavra já tem uma resposta sobre isto. Outro exemplo.
Answered by Maniero on January 4, 2022
Primeiramente
if(sex == m)
{
printf(" bem vindo Senhor %sn", nome); // se for homem
}
Esse modo de comparação está errado. Pois a variável sex é um vetor de char, ou melhor, string como quiser chama-lo. Essa comparação == é para números (inteiros, float...) ou pode usar mas o m tem que estar assim 'm' e o sex tem que especificar a posição do vetor para referir o caractere propriamente dito; E seu m e f são variáveis e não possuem nada nelas, para usa-las seria necessário realizar um scanf
de m ou f ou atribuir um caractere f='f'...
Você pode usar strcmp para comparar por exemplo:
if(strcmp(sex,'m')==0)
{
printf(" bem vindo Senhor %sn", nome); // se for homem
}
Requisitos:
Para usar o strcmp é necessário usar a biblioteca #include < string.h > .
Para melhorar seu código:
scanf("%s", &sex);
Você poderia usar apenas um getch()
ou getche()
já que a entrada é apenas uma letra;
Requisitos: Para utilizar a função getch ou getche é necessário incluir a biblioteca conio.h no programa;
Answered by Maurício Z.B on January 4, 2022
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP