Ayuda para programa en c++

Iniciado por geisertoaspern, 21 Septiembre 2011, 19:15 PM

0 Miembros y 1 Visitante están viendo este tema.

geisertoaspern

Tengo que hacer un programa que pida al usuario ingresar cuantas notas ingresara y de esas notas ingresadas determinar la mayor, yo lo llevo mas o menos pero no me funciona lo de la nota mayor, esperare su ayuda gracias..


#include <iostream>
int main()
{
int x, a, b,maximo;

cout<<"Ingrese la cantidad de numeros que va a ingresar: " ;
cin>>a;

for (x=1;x<=a;x++)
   {
   cout<<"Ingrese Numero:"<<x<<"   ";
   cin>>b;
   }



      for(int x=0;x<=a;x++)
        if(b>x)
        int   maximo=b;
      cout<<"La nota maxima es: "<<maximo;


cin.get();cin.get();
}

peterfly

prueba el siguiente codigo... lo mas seguro es que te funcione
#include <iostream>
int main()
{
int x, a, b,maximo;

std::cout << "Ingrese la cantidad de numeros que va a ingresar: " ;
std::cin >> a;

for (x=1;x<=a;x++)
   {
   std::cout << "Ingrese Numero:"<<x<<"   ";
   std::cin >> b;
   }



      for(int x=0;x<=a;x++)
        if(b>x)
        int   maximo=b;
      std::cout << "La nota maxima es: "<<maximo;


getchar();
     return 0;
}

bigfu

#2
Tu problema es que actualizas el valor de la variable b tantas veces como notas quieres ingresar, perdiendo todas las anteriores. Deberías modificarlo de la siguiente forma:

cout << "Ingrese Numero: ";
cin >> b;
maximo = b;
for (x=1;x<a;x++){
  cout << "Ingrese Numero:"<<x<<"   ";
  cin >> b;
  if(b>maximo){
     maximo = b;
}
A reader lives a thousand lives before he dies. The man who never reads lives only one

.mokk.

Ademas del error que te mencionan, tambien pasa que preguntas cuantas notas deceas preguntar o "grabar" y en el for haces de 0 al total de notas siendo que eso sera que si ingresan 5 al final seran 6 notas las que ingresaran por eso se inicia desde 0 y se pone solo < , a menos que lo inicies en 1 ahi ya lo pones como lo tienes en <=

Aqui te dejo a como yo lo hice usando un arreglo, para asi guardar las notas y poder tener acceso a ellas despues y no perder ninguna.

Aunque bueno en si con lo que ya te mencionaron lo de que inicializas siempre maxima ya con eso se te resolvera y claro lo que te digo lo del for, con eso deberia andarte.

Bueno aqui te dejo un ejemplo que acabo de hacer

Código (c++) [Seleccionar]
#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
    int n = 0;
    int m, g;
    cout << "Total de notas:" << endl;
    cin >> n;
    int notas [n];
   
    //Llenamos la matriz notas, con las notas.
    for(int x = 0; x < n; x++)
    {
            cout << "Nota[" << (x+1) << "]: " << endl;
            cin >> g;
            notas[x] = g;
    }
   
    /*
    Le colocamos a m la primera nota, esto para asi tomar como si la primera nota fuese la mayor,
    esto se hace por si inicializamos en 0, y hay menores a 0, el mayor sera 0 y no existira, yo la verdad siempre lo hago asi
    darle el valor de la primera posicion [0]
    */
    m = notas[0];
   
    //Vemos cual es el valor mas alto, lo iniciamos en 1 x porque asi no comparara el mismo valor, que seria algo demas jeje
    for(int x = 1; x < n; x++)
    {
            if(notas[x] > m)
                        m = notas[x];
    }
   
    //imprimimos la nota mas algo guardada en m
    cout << "Nota mas alta: " << m << endl;
    cin.get();cin.get();
}