Fórum dúvida em exercício #623662
11/02/2025
0
estou com dúvidas nesse exercício (c#):
Faça um programa que apure o resultado de uma votação para determinar o representante da turma do 1º
período do curso de Sistemas de Informação. O programa deverá solicitar que seja informada a quantidade de
candidatos a representante. Em seguida, o programa deverá ler os nomes dos candidatos. O primeiro candidato
informado terá o número 0, o segundo candidato informado terá o número 1, o terceiro candidato informado
terá o número 2, e assim por diante. O programa deverá ler os votos de 60 alunos, isto é, o número do candidato
que cada um dos 60 alunos deseja votar. O programa deverá calcular e apresentar como resultado:
• o nome e a quantidade de votos do candidato mais votado
• o número e a quantidade de votos do candidato menos votado
• a quantidade de votos nulos (isto é, número inválido)
meu código por enquanto está assim:
using System;
namespace exc_4;
class Program
{
static void Main(string[] args)
{
int n, voto, nulos = 0, indexMaisVotado = 0;
string[ ] nomes;
int[] votos;
Console.WriteLine("numero de candidatos: ");
n = int.Parse(Console.ReadLine());
nomes = new string[n];
votos = new int[n];
for(int i = 0; i < n; i++)
{
Console.WriteLine($"nome do candidato :");
nomes[i] = Console.ReadLine();
}
}
}
acho que minha principal duvida é na hora de comparar os votos do array, qualquer ajuda é bem vinda.
Faça um programa que apure o resultado de uma votação para determinar o representante da turma do 1º
período do curso de Sistemas de Informação. O programa deverá solicitar que seja informada a quantidade de
candidatos a representante. Em seguida, o programa deverá ler os nomes dos candidatos. O primeiro candidato
informado terá o número 0, o segundo candidato informado terá o número 1, o terceiro candidato informado
terá o número 2, e assim por diante. O programa deverá ler os votos de 60 alunos, isto é, o número do candidato
que cada um dos 60 alunos deseja votar. O programa deverá calcular e apresentar como resultado:
• o nome e a quantidade de votos do candidato mais votado
• o número e a quantidade de votos do candidato menos votado
• a quantidade de votos nulos (isto é, número inválido)
meu código por enquanto está assim:
using System;
namespace exc_4;
class Program
{
static void Main(string[] args)
{
int n, voto, nulos = 0, indexMaisVotado = 0;
string[ ] nomes;
int[] votos;
Console.WriteLine("numero de candidatos: ");
n = int.Parse(Console.ReadLine());
nomes = new string[n];
votos = new int[n];
for(int i = 0; i < n; i++)
{
Console.WriteLine($"nome do candidato :");
nomes[i] = Console.ReadLine();
}
}
}
acho que minha principal duvida é na hora de comparar os votos do array, qualquer ajuda é bem vinda.

Theosux
Curtir tópico
+ 0
Responder
Posts
11/02/2025
Arthur Heinrich
Você está indo bem.
Você parou na parte inicial, onde são pedidos os nomes dos n candidatos.
Agora precisa fazer outro loop, de 0 a 59, para solicitar o número do candidato que cada eleitor deseja votar e, caso ele tenha escolhido um candidato válido (0 <= candidato < n), você acumula mais um voto para o candidato escolhido. Caso o voto não seja válido, compute 1 voto inválido.
Lembre-se de zerar as quantidades dos votos dos n candidatos, antes de iniciar a votação.
Numa situação mais complexa, para obter todos os candidatos na ordem do mais votado para o menos votado, você precisaria ordenar os arrays nomes e votos simultaneamente. Porém, neste caso, basta encontrar o mais votado e, em seguida, o menos votado.
Para isto, basta fazer uma varredura simples. Assuma, inicialmente, que o seu candidato mais votado é o último (n-1). depois, vá varrendo os candidatos com i entre n-2 até o zero e, se algum deles tiver mais ou menos votos do que o selecionado até então, selecione o novo (i). Ao chegar no i = -1 você terá concluído a varredura e terá o índice do candidato mais ou menos votado.
Você parou na parte inicial, onde são pedidos os nomes dos n candidatos.
Agora precisa fazer outro loop, de 0 a 59, para solicitar o número do candidato que cada eleitor deseja votar e, caso ele tenha escolhido um candidato válido (0 <= candidato < n), você acumula mais um voto para o candidato escolhido. Caso o voto não seja válido, compute 1 voto inválido.
Lembre-se de zerar as quantidades dos votos dos n candidatos, antes de iniciar a votação.
Numa situação mais complexa, para obter todos os candidatos na ordem do mais votado para o menos votado, você precisaria ordenar os arrays nomes e votos simultaneamente. Porém, neste caso, basta encontrar o mais votado e, em seguida, o menos votado.
Para isto, basta fazer uma varredura simples. Assuma, inicialmente, que o seu candidato mais votado é o último (n-1). depois, vá varrendo os candidatos com i entre n-2 até o zero e, se algum deles tiver mais ou menos votos do que o selecionado até então, selecione o novo (i). Ao chegar no i = -1 você terá concluído a varredura e terá o índice do candidato mais ou menos votado.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)