2
respostas

No código abaixo, qdo ele apresentou a msg, o valor media foi só a parte inteiram, apesar de a conta ter dado um valor quebrado, pq? Isso contraria o que é dito neste item...

int idade1 = 10; int idade2 = 25; int idade3 = 11; int media;

media = (idade1 + idade2 + idade3) / 3;

MessageBox.Show("A médida das idades é " + media);

2 respostas

Você tem que colocar a variável media como double.

Luana,

Observe os tipos das variáveis do seu exemplo, todos são do tipo Int, ou seja todo e qualquer número após a virgula não existe para eles;

using System;

namespace ConsoleApp1
{
    class Programa
    {
        static void Main(string[] args)
        {
            // ao declarar um int, a linguagem espera esse valor; 
            int idade1 = 10; int idade2 = 25; int idade3 = 11;          int media;

            // o resultado da operação ainda será um inteiro; 
            media = (idade1 + idade2 + idade3) / 3;
            Console.WriteLine("sua media: " + media);
            Console.ReadLine();
        }
    }
}

Na atividade em questão, o código abaixo não compila:

int pi = 3.14;

Pois o que é esperado para a linguagem é um inteiro e o valor atribuído é um double. Dessa maneira seria necessário ajustar o tipo da variável para double (conforme a resposta do Dionísio) ;

double pi = 3.14;

Entretanto o contrário, atribuir 3 a um double é válido;

double pi = 3;

Isso é permitido porque o compilador entende o 3 mesmo sem . é um double e consegue se virar;

(Eu gostaria de ter um link explicando um pouco melhor essa parte mas acabei não encontrando nada específico :'( )