Foros aprenderaprogramar.com

Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: pasisica en 06 de Octubre 2013, 21:24

Título: ejemplo leer por teclado y condicionales if en C++ cplusplus
Publicado por: pasisica en 06 de Octubre 2013, 21:24
Realicé este ejercicio a mi me parece que está bien pero no me muestra el resultado deseado el ejercicio es esta.

Citar
/*Escribir un programa que lea una nota de un examen por teclado y devuelta la
calificación que tiene. La calificación podrá ser: Suspenso (0-4.99),
Aprobado (5-6.99), Notable (7-8.99), Sobresaliente (9-9.99) o
Matrícula de Honor (10), si el usuario introduce un valor menor que cero o un valor mayor a 10 se muestre por pantalla un mensaje de error. */

-------------------------------------------------

Código: [Seleccionar]
#include<iostream>
using namespace std;
int main()
{
int nota;
nota=0;
cout<<"ingrese la nota del alumno ";

cin>>nota;
cout<<"Ahora nota es igual que "<<nota;
if((nota<0) && (nota>10))
{
if((nota>=0)&&(nota<=4.99))
{cout<<"Su nota es "<<nota<<" Suspenso ";}
if((nota>=5)&&(nota<=6.99))
{cout<<"Su nota es "<<nota<<" Aprobado ";}
if((nota>=7)&&(nota<=8.99))
{cout<<"Su nota es "<<nota<<" Notable ";}
if(nota>=9&&nota<=9.99)
{cout<<"Su nota es "<<nota<<" Suspenso ";}
if(nota==10)
{cout<<"Su nota es "<<nota<<" Matricula de Honor ";}
}
else
{
    cout<<"Error";
}
cin.get();
cin.get();

}

//Alguien puede ayudarme a entender si estoy cometiendo algun error con ese código.
Título: Re:ayuda con este codigo
Publicado por: javi in the sky en 06 de Octubre 2013, 22:13
Hola pasisica, cuando incluyas código usa el botón # que aparece en el editor del foro, si no lo usas resulta difícil de leer. El código tiene que quedar entre las etiquetas [ code] y [ / code] que te aparecerán al pulsar este botón.

Tienes dos fallos en el código, por un lado declaras nota como tipo int (entero) y esto es para números como 1, 2, 3, 4, ... pero tú necesitas decimales así que lo más lógico es declararlo double.

Por otro lado en la condición if((nota<0) && (nota>10)) tienes los símbolos cambiados, sería if((nota>0) && (nota<10))

El código sería así revísalo a ver si lo entiendes y te va bien

Código: [Seleccionar]
#include <iostream>

using namespace std;

int main() {
    double nota;
    nota=0;
    cout<<"ingrese la nota del alumno ";

    cin>>nota;
    cout<<"Ahora nota es igual que "<<nota;

    if((nota>0) && (nota<10)) {
        if((nota>=0)&&(nota<=4.99)) {
            cout<<"Su nota es "<<nota<<" Suspenso ";
        }
        if((nota>=5)&&(nota<=6.99)) {
            cout<<"Su nota es "<<nota<<" Aprobado ";
        }
        if((nota>=7)&&(nota<=8.99)) {
            cout<<"Su nota es "<<nota<<" Notable ";
        }
        if(nota>=9&&nota<=9.99) {
            cout<<"Su nota es "<<nota<<" Suspenso ";
        }
        if(nota==10) {
            cout<<"Su nota es "<<nota<<" Matricula de Honor ";
        }
    } else {
        cout<<"Error";
    }
    cin.get();
    cin.get();
}
Título: Re:ayuda con este codigo
Publicado por: pasisica en 07 de Octubre 2013, 01:04

gracias ahora ya lo acabo de entender, je je.
y no me había fijado en el int, se me pasó por alto.