Fórum Duvida sobre erro em um algoritmo em C #597804
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
Gostei + 1
Clique aqui para fazer login e interagir na Comunidade :)