Ir ao conteúdo
  • Cadastre-se
jpalmeida34

C Consigo compilar o programa, mas ele não executa todas as ações.

Posts recomendados

Eu tentei resolver um exercício, mas eu não estou achando ele em lugar nenhum. Ele basicamente pedia para pedir os dados de uma pessoa(nome, sexo e idade), e se a pessoa tivesse menos de 25 anos e fosse do sexo feminino era para imprimir o nome da pessoa e que ela foi aceita. O problema é que pelo código que eu fiz, depois de inserir as informações, o nome não é impresso, mesmo obedecendo as condições estabelecidas. Alguém ai pode me ajudar, por favor?

 

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

struct dados{
  char nome [70];
  char sexo [20];
  int idade;
};

int main (){

  struct dados pessoa1;

  printf ("Insira o seu nome: ");
  fgets (pessoa1.nome, 70, stdin);
  printf ("Insira o seu sexo: ");
  fgets (pessoa1.sexo, 20, stdin);
  printf ("Insira a sua idade: ");
  scanf ("%i", &pessoa1.idade);

  if (pessoa1.sexo==="feminino" && pessoa1.idade<25){
    printf ("%s, voce foi aceita!\n", pessoa1.nome);
  }

  return 0;
}

 

  • Curtir 2

Compartilhar este post


Link para o post
Compartilhar em outros sites

@jpalmeida34     não está funcionando por quê você está misturando a linguagem c com a linguagem c++ , que parecem as mesmas mas não são , pois a linguagem c++ é outra coisa , e no c você compara string usando a função strcmp , assim  :

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <windows.h>
#define H GetStdHandle(STD_OUTPUT_HANDLE)
void textcolor_2(int l, int f){SetConsoleTextAttribute(H,l+(f<<4));}
struct dados{
  char nome [70];
  char sexo [20];
  int idade;
};
int main (){
  struct dados pessoa1;
  textcolor_2(14,0);
  printf ("Insira o seu nome: ");
  textcolor_2(11,0);
  fgets(pessoa1.nome, 70, stdin);
  pessoa1.nome[strlen(pessoa1.nome)-1]='\0';
  textcolor_2(14,0);
  printf("%s\n",pessoa1.nome);
  printf ("Insira o seu sexo: ");
  textcolor_2(11,0);
  fgets (pessoa1.sexo, 20, stdin);
  textcolor_2(14,0);
  printf ("Insira a sua idade: ");
  textcolor_2(11,0);
  scanf ("%i", &pessoa1.idade);

    if(strcmp(pessoa1.sexo,"feminino") && pessoa1.idade<25){
    textcolor_2(12,15);
    printf ("  %s , voce foi aceita . . . !  \n", pessoa1.nome);
  }
  textcolor_2(10,12);
  return 0;
}

 

  • Curtir 2

Compartilhar este post


Link para o post
Compartilhar em outros sites

@devair1010 Muito obrigado. Eu estou aprendendo C sozinho e eu não sabia que a comparação de strings era assim. Ajudou demais, valeu!!

  • Amei 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá!

 

Consiga um livro! É mais produtivo.

Tente cursos online.  Tem muitos grátis. Na primeira tela da primeira pesquisa tem esse com 24 aulas em português https://gyncursos.com.br/curso/curso-de-programacao-em-linguagem-c/

Não estou recomendando. Não conheço. Mas precisa de um roteiro

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@arfneto , obrigado pela dica!! Vai ajudar bastante.

  • Curtir 2

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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 publicações 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 de Computadores - Gabriel Torres

PROMOÇÃO DE QUARENTENA

De R$ 39,90 por apenas R$ 9,90 só até as 23h59min desta sexta-feira 03/04/2020

CLIQUE AQUI E COMPRE AGORA MESMO!