M03A07 – Exercício 26

Home Fóruns Linguagem C M03A07 – Exercício 26

Visualizando 3 respostas da discussão
  • Autor
    Posts
    • #86547
      Gabriel Desmarais
      Participante

      Olá!
      Estava resolvendo o exercício 26 e encontrei alguns problemas.

      Meu código:
      #include <stdio.h>
      #include <locale.h>
      #include <string.h>
      int main() {
      setlocale(0, “Portuguese”);
      char estado[2];
      printf(“Em que estado do Brasil você nasceu? “);
      gets(estado);
      strupr(estado);
      if (estado==”SP”) {
      printf(“Nascendo em %s você é PAULISTA”, estado);
      }
      else if (estado==”RJ”) {
      printf(“Nascendo em %s você é CARIOCA”, estado);
      }
      else {
      printf(“Nascendo em %s você é natural do seu estado, mas ainda não sei como te chamar”, estado);
      }
      return 0;
      }

      Entrada que eu utilizei para teste foi: rj
      A saída foi: Nascendo em RJ você é natural do seu estado, mas ainda não sei como te chamar
      Imagino que o problema possa ser nas condições do if e do else if, nenhuma delas está retornando o valor lógico que deveria.

    • #86859

      Gabriel, o seu código pode estar dando erro pois nas linhas com if você está tentando comparar uma string com a outra usando o ==, mas o recomendado é utilizar o strcmp.

      Nesse link tem o tutorial de como utilizar o strcmp.

      Espero ter ajudado, qualquer dúvida estamos à disposição. 🖖

    • #113903
      Matheus Soares
      Participante

      Boa tarde. Gostaria de saber qual foi o erro que eu deixei passar neste codigo.
      Quando executado com: “else if (st!=rj && st!=sp && st!=mg && st!=pr && st!=sc && st!=ba) {

      }”
      ele retorna apenas esa condicional, porém, se eu a retiro do código, as outras estruturas não são executadas, como se não existissem. Creio que seja o “==” entre duas variaveis char, mas n tenho certeza. Como eu soluciono este erro?
      #include <stdio.h>
      #include <time.h>
      #include <stdlib.h>
      #include <locale.h>

      void main () {
      setlocale(LC_ALL, “Portuguese”);
      char st[2];
      char rj = “RJ”;
      char sp = “SP”;
      char ba = “BA”;
      char mg = “MG”;
      char sc = “SC”;
      char pr = “PR”;
      printf(“Em qual estado do Brasil você nasceu? “);
      gets(st);
      if (st==rj) {
      printf(“Nascendo no %s você é Carioca!”, st);
      } else if (st==sp) {
      printf(“Nascendo em %s você é Paulista!”, st);
      } else if (st==mg) {
      printf(“Nascendo em %s você é Mineiro!”, st);
      } else if (st==ba) {
      printf(“Nascendo em %s você é Bahiano!”, st);
      } else if (st==pr) {
      printf(“Nascendo em %s você é Paranaense!”, st);
      } else if (st==sc) {
      printf(“Nascendo em %s você é Catarinense!”, st);
      } else if (st!=rj && st!=sp && st!=mg && st!=pr && st!=sc && st!=ba) {

      }
      }

    • #113907
      Tutora Jessica
      Moderador

      Ola Matheus, trouxe a sua dúvida para uma já existente desse mesmo exercício.
      Veja se essa resolução irá resolver o seu erro, caso não funcione retorne ao fórum que iremos lhe ajudar.
      Ah.. no fórum há outros tópicos desse mesmo exercício também.
      Bons estudos 🖖

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