Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

201
Vistas
Estoy tratando de obtener un programa de JavaScript para imprimir una calificación de letra y un porcentaje basado en un promedio usando una declaración de cambio, pero la respuesta aparece NaN

En mi programa, estoy usando un bucle do-while para solicitar calificaciones hasta que se ingresa un -1 y luego aumenta la cantidad de calificaciones ingresadas. Luego, un ciclo while verifica si la calificación es NaN o menor que 0 o mayor que 100. El programa solicitará otra calificación si es así. Si se ingresa un -1, el programa saldrá del ciclo y calculará el promedio basado en el contador de calificaciones y el número total de calificaciones sumadas. Cuando ejecuto el programa y pongo un 1 negativo para detenerlo, imprime el -1 dentro de la tabla y el promedio semestral se muestra como NaN. Supongo que esto se debe a que el -1 negativo hace que no sea un número positivo, pero no estoy seguro de cómo solucionarlo.

Aquí está mi código.

 do { grade = prompt('Enter grade(-1 to stop)'); count++; while (grade < -1 || grade > 100 || isNaN(grade)) { grade = prompt('Enter grade again (-1 to stop)'); } document.write('<td>Grade ' + count + '</td>'); document.write('<td width="50"> ' + grade + ' </td>'); document.write('</tr>'); } while (grade != -1) { --total; alert("You have input -1 to stop"); document.write('</table>'); } total = total + grade; avg = total / count; document.write('Semester Average: ' + avg + '<br /><br />');
about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

¿Es esto lo que quieres?

https://jsfiddle.net/sean7777/qtf3v4rn/26/

Hope this helps :)

about 4 years ago · Juan Pablo Isaza Denunciar

0

Intenté solucionar tu problema aquí.

https://jsfiddle.net/51v3qft9/26/

Este es el fragmento que puede no ser correcto según su lógica, pero funciona para mí.

 var count = 0 var total = 0 var avg = 0 document.write('<table>'); do { grade = prompt('Enter grade(-1 to stop)'); //if user key-in nothing, we need to ask user to key-in again while (!grade || grade < -1 || grade > 100 || isNaN(grade)) { grade = prompt('Enter grade again (-1 to stop)'); } //whenever user key-in -1, we need to break `while` if (grade == -1) { break } count++; document.write('<td>Grade ' + count + '</td>'); document.write('<td width="50"> ' + grade + ' </td>'); document.write('</tr>'); total += Number(grade); // you need to convert `grade` to number } while (grade != -1) alert("You have input -1 to stop"); document.write('</table>'); if(count > 0) { avg = total / count; } document.write('Semester Average: ' + avg + '<br /><br />');
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda