MA

Mailon Azevedo11/12/2022 12:11
Compartilhe

Alguem poderia me ajudar a resolver esse desafio de logica c#? estou preso nele já faz 1 dia

    Segue meu codigo que fiz e n está dando certo, aparece o erro ali no if da linha 13 CS0029: Cannot implicitly convert type `double' to `bool' Compilation failed.

    image

    Abaixo está o codigo em branco e o que é pedido no desafio:

    //TODO: Complete os espaços em branco com uma possível solução para o problema.

    class Desafio {

      static void Main() {

        int limit = Int32.Parse(Console.ReadLine());

        for (int i = 0; i < limit; i++) 

        {

          string[] line = Console.ReadLine().Split(" ");

          double X = double.Parse(      );

          double Y = double.Parse(      );

          if (  ) {

             

          } else {

             

          }

        }

      }

    }

    image

    Compartilhe
    Comentários (3)
    Daniel Almeida
    Daniel Almeida - 12/12/2022 17:34

    O erro que está dando na linha 13 é porque o resultado esperado do if é do tipo boleano (bool), e no código ele vai retornar um double que é o resultado da divisão X/Y (pois suas variáveis são do tipo double). Existe várias formas para resolver isso, porém ao invés de validar o resultado X/Y, seria melhor validar se Y é diferente ( < > ) de 0. Pois se Y for igual a 0 a divisão é impossível. Outro ponto que precisa ser revisto é esse FOR para receber os valores, dá forma que está vai dar erro também. Um cenário melhor seria criar duas variáveis (x e y) e para cada uma atribuir uma entrada de dados.




    Denise Melo
    Denise Melo - 11/12/2022 13:02

    Cara do céu! já fiz esse desafio, mas não foi pela Dio, há algum tempo, tenho guardado aqui o exercício, mas não sei se é o mesmo, pois fui um pouco desorganizada e não copiava todo o exercicio, afff . Segue a resolução e vê se te ajuda em alguma coisa:

    using System;
    
    
    
    
    class DividindoXPorY
    
    {
    
    static void Main(string[] args)
    
    {
    
    int limit = Int32.Parse(Console.ReadLine());
    
    for (int i = 0; i < limit; i++)
    
    {
    
    string[] line = Console.ReadLine().Split(" ");
    
    double X = double.Parse(line[0]);
    
    double Y = double.Parse(line[1]);
    
    
    
    
    if (Y == 0)
    
    {
    
    Console.WriteLine("divisao impossivel");
    
    }
    
    else
    
    {
    
    double divisao = (double)X / Y;
    
    
    
    
    if (divisao < 0 && divisao > -0.5)
    
    {
    
    Console.WriteLine("-0.0");
    
    }
    
    else
    
    {
    
    Console.WriteLine(Math.Round(divisao, 1).ToString("N1"));
    
    }
    
    }
    
    }
    
    }
    
    }
    
    
    
    
    Carlos Alecrim
    Carlos Alecrim - 11/12/2022 12:53

    De acordo com os possíveis resultados mostrado você não poder fazer uma divisão onde o denominador é zero, [numerador/denominador], então avalia se o segundo numero é zero , então mostre a mensagem "divisão impossível" senão realize o calculo e devolva o resultado. Dentro do if realize avaliação booleanas assim, if ( numero < 0 ) ...