Ir ao conteúdo

Posts recomendados

Postado

Bom dia, eu gostaria de uma ajuda em um exercício  que o professou passou na faculdade. Já tentei fazer de várias maneiras, mas  eu não consigo encaixar essa linha no programa " O numero que encerrará a leitura será zero". 

 

Exercício:

Escreva uma função que leia uma sequência de 50 valores reais, calcule e imprima a média aritmética dos valores lidos, a quantidade de valores positivos, a quantidade de valores negativos e o percentual de valores negativos e positivos. Mostre os resultados. O número que encerrará a leitura será zero. A função deve retornar a quantidade de números lidos. Chame a função no método principal (Main) e imprima o retorno.

 

Eu tentei fazer desse jeito, só que eu tive que usar a função break, gostaria de saber se tem um outro jeito de fazer usando só as estruturas de repetição básicas, for, while e if else. ( creio eu que esteja errado da forma que eu fiz)

for (i = 1; i < 6; i++)
            {
                Console.Write("Digite um numero: ");
                num = Convert.ToInt32(Console.ReadLine());
                if (num != 0)
                {
                    if (num > 0)
                    {
                        quant_positivo++;
                    }
                    else if (num < 0)
                    {
                        quant_negativo++;
                    }
                    soma_geral = soma_geral + num;
                    cont++;
                }
                else{
                    break;
                }
            }
            Console.WriteLine("Media: {0}", (soma_geral / cont));
            Console.WriteLine("Quantidade numeros positivos: {0}", quant_positivo);
            Console.WriteLine("Quantidade numeros negativos: {0}", quant_negativo);
            Console.WriteLine("Porcentagem negativos: {0}%", (quant_negativo / cont) * 100);
            Console.WriteLine("Porcentagem positivos: {0}%", (quant_positivo / cont) * 100);
			return cont;
        }
    }
}

 

Postado

Obrigado por  ajudar @Gabferreira , só que eu tentei fazer com while e o problema ainda persiste. Não consigo pensar em outras maneiras... sou iniciante na área de programação, estou apanhando pra esse exercício !

Postado

Eu usuaria break também, mas caso não queira, uma alternativa:

         do {
                
                Console.Write("Digite um numero: ");
                num = Convert.ToInt32(Console.ReadLine());
                if (num != 0)
                {
                    if (num > 0)
                    {
                        quant_positivo++;
                    }
                    else if (num < 0)
                    {
                        quant_negativo++;
                    }
                    soma_geral = soma_geral + num;
                    cont++;
                        
                }
                
            }
            while ((num != 0) && (cont < 5));

            Console.WriteLine("Media: {0}", (soma_geral / cont));
            Console.WriteLine("Quantidade numeros positivos: {0}", quant_positivo);
            Console.WriteLine("Quantidade numeros negativos: {0}", quant_negativo);
            Console.WriteLine("Porcentagem negativos: {0}%", (quant_negativo / cont) * 100);
            Console.WriteLine("Porcentagem positivos: {0}%", (quant_positivo / cont) * 100);
			return cont;
        }
    }
}

 

Crie uma conta ou entre para comentar

Você precisa ser um usuário 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 comunidades 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...