Duvida sobre erro em um algoritmo em C
14/10/2018
0
Fiz um programa com o seguinte comando: "Ler nome, sexo e idade. Se sexo for feminino e idade menor que 25, imprime o nome da
pessoa e a palavra “ACEITA”, caso contrario imprimir “NÃO ACEITA”.". Fiz o programa porém quando digito sexo 'feminino' e idade abaixo de 25 ele retorna "Não aceito" ao invés de "Aceito". O que pode tá errado no meu código?
Código:
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
#include <string.h>
int main(){
setlocale(LC_ALL, "Portuguese_Brazil");
char nome[200];
int idade;
char sexo[50];
setbuf(stdin, NULL);
printf("Digite seu nome: ");
gets(nome);
printf("Digite seu sexo: ");
gets(sexo);
printf("Digite sua idade: ");
scanf("%d",&idade);
if(sexo=="feminino" && idade<25){
printf("\\n%s\\n",nome);
printf("Situação: Aceita.\\n");
}else{
printf("\\n%s\\n",nome);
printf("Situação: Não aceita.\\n");
}
return 0;
}
OBS: Não quero apenas outra forma de escrever o programa(mas se quiser pode colocar), quero saber porque esse código está dando errado!
pessoa e a palavra “ACEITA”, caso contrario imprimir “NÃO ACEITA”.". Fiz o programa porém quando digito sexo 'feminino' e idade abaixo de 25 ele retorna "Não aceito" ao invés de "Aceito". O que pode tá errado no meu código?
Código:
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
#include <string.h>
int main(){
setlocale(LC_ALL, "Portuguese_Brazil");
char nome[200];
int idade;
char sexo[50];
setbuf(stdin, NULL);
printf("Digite seu nome: ");
gets(nome);
printf("Digite seu sexo: ");
gets(sexo);
printf("Digite sua idade: ");
scanf("%d",&idade);
if(sexo=="feminino" && idade<25){
printf("\\n%s\\n",nome);
printf("Situação: Aceita.\\n");
}else{
printf("\\n%s\\n",nome);
printf("Situação: Não aceita.\\n");
}
return 0;
}
OBS: Não quero apenas outra forma de escrever o programa(mas se quiser pode colocar), quero saber porque esse código está dando errado!
John Cunha
Curtir tópico
+ 1
Responder
Post mais votado
16/10/2018
Olá boa tarde! Eu dei uma verificada no seu código e percebi que deva ser algo relacionado a comparação de char para char* (to char para charconst), nunca cheguei a lidar com uma situação parecida. Mas segue uma ideia provisória de uma forma para estar utilizando esse programa:
#include <stdio.h> #include <stdlib.h> #include <locale.h> #include <string.h> int main(){ setlocale(LC_ALL, "Portuguese_Brazil"); char nome[200]; int idade; int masculino; int feminino; int sexo; setbuf(stdin, NULL); printf("Digite seu nome: "); scanf("%s",&nome); printf("Qual seu sexo?\\n 1- Masculino\\n 2- Feminino\\n "); scanf("%d",&sexo); printf("Digite sua idade: "); scanf("%d",&idade); if(sexo==2 && idade <25){ printf("\\n%s\\n",nome); printf("Situação: Aceita.\\n"); }else{ printf("\\n%s\\n",nome); printf("Situação: Não aceita.\\n"); } return 0; }
Maicon Scapatici
Responder
Clique aqui para fazer login e interagir na Comunidade :)