Autor Tema: Duda sobre un ejercicio C#  (Leído 1355 veces)

javierx0246

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 7
    • Ver Perfil
Duda sobre un ejercicio C#
« en: 15 de Noviembre 2022, 15:57 »
Hola queria comentar que estoy haciendo un ejercicio sobre la frecuencia que lo tengo casi pero no me sale



Mi codigo









using System.Text;
internal class Program
{
public static int[] Arra()
{
int notasRecogidas = 0;
int notasnumero = 0;


int[] notas = new int[5];


for (int i = 0; i < notas.Length; i++)
{

do
{
Console.Write("Ingrese nota (entre 0-10): ");
notasRecogidas = int.Parse(Console.ReadLine());
notas = notasRecogidas;
if (notas < 0 || notas > 10)
{
notasnumero++;

Console.WriteLine($"Nota fuera de rango {notasnumero}");
}

Console.WriteLine($" {notas} ");


} while (notas < 0 || notas > 10);










}
return notas;
}

static void FrecuenciaNotas(int[] Array)
{
int[] FrecuenciaNota = new int[11];
int i, j;
for (i = 0; i < 11; i++)
{
for (j = 0; j < Array.Length; j++)
{
if (i ==FrecuenciaNota[j])
{
FrecuenciaNota++;
}

}
Console.WriteLine($"Nota {i}, {FrecuenciaNota[j]} veces.");
}
}


private static void Main(string[] args)
{
int[] notas = Arra();
FrecuenciaNotas(notas);


Console.ReadLine();
}

}

Gracias
« Última modificación: 16 de Noviembre 2022, 11:34 por Kabuto »

Kabuto

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 988
    • Ver Perfil
Re: Duda sobre un ejercicio
« Respuesta #1 en: 16 de Noviembre 2022, 11:31 »
Hola.
No lo he ejecutado, pero así a ojo, creo que hay un problema en este método.
Por argumentos recibes un array que es quien contiene las notas (lo marco en azul).
Pero luego, no lo usas para comparar las notas, si no que usas el array FrecuenciaNota (marco en rojo), quien en realidad lo que tiene que hacer es contar la frecuencia de cada nota

Citar
static void FrecuenciaNotas(int[] Array)
{
int[] FrecuenciaNota = new int[11];
int i, j;
for (i = 0; i < 11; i++)
{
for (j = 0; j < Array.Length; j++)
{
if (i ==FrecuenciaNota[j])
{
FrecuenciaNota[ i ]++;
}

}
Console.WriteLine($"Nota {i}, {FrecuenciaNota[j]} veces.");
}
}

Entiendo que en realidad deberías estar usando el array Array.

Citar
static void FrecuenciaNotas(int[] Array)
{
int[] FrecuenciaNota = new int[11];
int i, j;
for (i = 0; i < 11; i++)
{
for (j = 0; j < Array.Length; j++)
{
if (i ==Array[j])
{
FrecuenciaNota[ i ]++;
}

}
Console.WriteLine($"Nota {i}, {FrecuenciaNota[j]} veces.");
}
}


Comprueba si así te funciona.
Es que yo ahora estoy escribiendo desde un smartphone y no puedo probar  :P
NO respondo dudas por mensaje privado
Publicando vuestras dudas en el foro público conseguimos:
- Que más gente aporte respuestas mejores o complementarias.
- Que otras personas puedan aprender de vuestras dudas.

Mejor en PÚBLICO que en privado. Gracias

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".