M03A02 – Linguagem C -Teste Pessoal.

Home Fóruns Linguagem C M03A02 – Linguagem C -Teste Pessoal.

Visualizando 1 resposta da discussão
  • Autor
    Posts
    • #113649
      Matheus Soares
      Participante

      Antes de realizar os exercícios tenho como costume eu mesmo propor alguns desafios. Com isso, treino meu raciocínio lógico, e tenho um melhor controle e entendimento do que está sendo passado a mim na aula em questão.

      Nos comandos a segui, no comentário mais estenso, logoa cima da condicional: If, verá um comentário mais extenso. Fiz ele para que seja mais fácil entender minha dúvida.

      #include <stdio.h>
      #include <time.h>
      #include <locale.h>
      #include <stdlib.h>

      void main () {
      setlocale(LC_ALL, “Portuguese”);
      printf(“Qual a data atual?\n\n”);
      time_t t;
      time(&t);
      struct tm *data;
      data = localtime(&t);
      // Definindo as variáveis de tempo fixas: “d” = day; “m” = month; “y” = year.
      int d = data->tm_mday;
      int m = data->tm_mon + 1;
      int y = data->tm_year + 1900;
      // Criando variaveis que serão definidas pelo usuário. “d2”, “m2” e “y2”
      int d2,m2, y2;
      printf(“Qual dia é hoje? “);
      fflush(stdin);
      scanf(“%i”, &d2);
      printf(“Qual mês? “);
      fflush(stdin);
      scanf(“%i”, &m2);
      printf(“De qual ano? “);
      fflush(stdin);
      scanf(“%i”, &y2);
      printf(“Você digitou a data: %i/%i/%i. “, d2, m2, y2);
      *****************************************************************************************************************************************************
      /* Inicialmente, eu estava executando, na condicional “if”, a seguinte instrução: “if (d2, m2, y2 != d, m, y…)”. Sinceramente não sei se comando está correto e me faltou apenas pontuar algumas outras instruções, mas o codigo não estava indo. ele sempre retornava o primeiro print, e nunca o da segunda condição (else). Abaixo, terá a instução que eu consegui pensar para solucionar o problema. ” if((d2 == d) && (m2 == m) && (y2 == y))”.
      A questão é: Por que em específico a instrução: “if (d2, m2, y2 != d, m, y…)” não funcionou?*/
      ******************************************************************************************************************************************************
      if((d2 == d) && (m2 == m) && (y2 == y)) {
      printf(“A data: %i/%i/%i que você digitou está correta, parabêns!”, d2, m2, y2);

      }
      // Aqui pode-se ver que eu utilizei uma condicional ainda não ensinada no curso, e, apesar de C ser minha primeira linguagem, tomei essa liberdade.
      else {
      printf(“A data: %i/%i/%i que você digitou está errada. A data correta é: %i/%i/%i.”, d, m, y, d2, m2, y2);
      }

      }

    • #113744
      Tutora Jessica
      Moderador

      Ola Matheus, realmente a condicional if (d2, m2, y2 != d, m, y…) esta errada, pois existem regras de sintaxe a serem seguidas.
      Parabéns por ter encontrado a solução.
      Bons estudos 🖖

Visualizando 1 resposta da discussão
  • Você deve fazer login para responder a este tópico.