Te salen todas las sumas porque el print está dentro de tu bucle, la respuesta de MCKSys es la correcta.
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes MenúCita de: Darhius en 20 Octubre 2012, 00:15 AM
Error de capa 8
NullPointerException es ocasionado porque tratas de ingresar a un indice que no existe en el arreglo.
Saludos.
import java.util.*;
public class array0301
{
private double[] alturaAlumnos;
private double alturaMedia,alturaCero;
private int indexArray,contadorEntradas;
private Scanner entradaTeclado;
public array0301()
{
this.contadorEntradas = 0;
this.alturaCero = 0;
this.alturaAlumnos = new double[1000];
this.alturaMedia = 0;
this.indexArray = 0;
this.entradaTeclado = new Scanner(System.in).useLocale(Locale.US);
}
public void setAlturas()
{
while(entradaTeclado.hasNext())
{
if(entradaTeclado.hasNextDouble())
{
alturaAlumnos[indexArray] = entradaTeclado.nextDouble();
indexArray += 1;
contadorEntradas += 1;
}
else break;
}
}
public void getAlturas()
{
indexArray = 0;
if(contadorEntradas == 0)
{
System.out.format(Locale.US,"La altura media de %d alumnos es de %.3f metros.",contadorEntradas,alturaCero);
}
else
{
while(indexArray <= contadorEntradas)
{
alturaMedia = alturaMedia + alturaAlumnos[indexArray];
indexArray += 1;
}
System.out.format(Locale.US,"La altura media de %d alumnos es de %.3f metros.",contadorEntradas,(alturaMedia / contadorEntradas));
}
}
public static void main(String args[])
{
array0301 p1 = new array0301();
p1.setAlturas();
p1.getAlturas();
}
}
import java.util.*;
public class array0301
{
private double[] alturaAlumnos;
private double alturaMedia;
private int indexArray;
private Scanner entradaTeclado;
public array0301()
{
this.alturaMedia = 0;
this.indexArray = 0;
this.entradaTeclado = new Scanner(System.in);
}
public void setAlturas()
{
while(entradaTeclado.hasNext())
{
if(entradaTeclado.hasNextDouble())
{
alturaAlumnos[indexArray] = entradaTeclado.nextDouble();
indexArray += 1;
}
}
}
public void getAlturas()
{
indexArray = 0;
while(indexArray <= alturaAlumnos.length)
{
alturaMedia = alturaMedia + alturaAlumnos[indexArray];
indexArray += 1;
}
System.out.format("La altura media de %d alumnos es de %.3f metros",alturaAlumnos.length,(alturaMedia / alturaAlumnos.length));
}
public static void main(String args[])
{
array0301 p1 = new array0301();
p1.setAlturas();
p1.getAlturas();
}
}
Cita de: Caster en 6 Octubre 2012, 14:06 PM
Y se podria utilizar otro?, asi por ejemplo:for (static int i = 0; i < count; ++i)
{
/* code */
}
Cita de: Caster en 6 Octubre 2012, 12:30 PM
el ambito de una variable una variable automatica puede ser menor que una funcion? una instruccion por ejemplo:for (auto int i = 5; i < count; ++i)
{
/* code */
}
Es decir, que el valor 5 para la variable solo valga para este bucle, no se si me explico, es que en el libro que estoy leyendo dice que si pero no da ningun ejemplo sobre como se puede utilizar de esta manera.
Saludos
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main(int argc, char *argv[])
{
int numeroAleatorio,maximo;
srand(time(NULL));
for(int i=0;i<=15200;i++){
numeroAleatorio = rand();
if(numeroAleatorio > maximo) maximo = numeroAleatorio;
}
cout << "El aleatorio mayor es: " << maximo << endl;
return 0;
}
Cita de: Caster en 3 Octubre 2012, 17:58 PM
Pues el libro es Programacion en C de Byron Gottfried de la edicion Mc Graw Hill.
overfl0w13, por si lees esto, lo del alcance de las variables, varibles locales, globales, estaticas y eso que creo que es de lo que hablas es justo el tema siguiente en mi libro al de las funciones que estoy viendo ahora.
Saludos
Cita de: rir3760 en 2 Octubre 2012, 15:55 PM
Eso es debido a que la declaración de una referencia:void modificar(int &a) {
Y la reserva de memoria mediante "new":int *a = new int(2);
Son parte del lenguaje C++ (pero no de C).
Un saludo