if else anidados en c++

Ya había escritos varios posts sobre las condiciones if else en c++, pero algo que hace falta saber es que dentro de una estructura if puede haber otra estructura if tantos veces como sea necesario. Es decir:

if ( condicion )
{
  instrucciones
  if ( condicion )
  {
    instrucciones
  }
}
else
{
  if ( condicion )
  {
    instrucciones
  }
  else
  {
    instrucciones
  }
  instrucciones
}

¿Y como para qué? Pues hay algunas situaciones que así lo requieren. Por ejemplo:

“Si un alumno tiene un promedio mayor o igual a 9 se le hara un 20% de descuento en la colegiatura, si tiene un promedio mayor o igual a 8 pero menor que 9 el descuento será del 10%, si su promedio es menor que 8 pero mayor o igual a 7 el descuento será del 5% y si promedia con 7 o menos no tendrá descuento.”

La solución de este problema en c++ sería así:

#include<stdio.h>
#include<conio.h>
int main()
{
  float promedio=0,descuento=0,colegiatura=1500,total=0;
  printf("ntCual fue tu promedio?: ");scanf("%f",&promedio);
  if(promedio>=9)
  {
    descuento=0.2;
  }
  else
  {
    if(promedio>=8 && promedio <9)
    {
      descuento=0.1;
    }
    else
    {
      if(promedio>=7 && promedio <8)
      {
        descuento=0.05;
      }
      else
      {
        descuento=0;
      }
    }
  }
  total=colegiatura-colegiatura*descuento;
  printf("ntTu colegiatura sera de %.2f",total);
  getch();
}

Ya que sabemos esto podemos ahorrarnos algunas llaves {} usando el else if, vean:

#include<stdio.h>
#include<conio.h>
int main()
{
  float promedio=0,descuento=0,colegiatura=1500,total=0;
  printf("ntCual fue tu promedio?: ");scanf("%f",&promedio);
  if(promedio>=9)
  {
    descuento=0.2;
  }
  else if(promedio>=8 && promedio <9)
  {
    descuento=0.1;
  }
  else if(promedio>=7 && promedio <8)
  {
    descuento=0.05;    
  }
  else
  {
    descuento=0;
  }
  total=colegiatura-colegiatura*descuento;
  printf("ntTu colegiatura sera de %.2f",total);
  getch();
}

40 thoughts on “if else anidados en c++

  1. necesito que me digas como hacer un programa donde pida 3 cantidades y luego mostrarlas en forma ascendente y descendente te lo agradeceria mucho…..

  2. hola, me gustaria saber por que no funsiona el verdadero de esta pregunta:
    char x
    if (x=”carlos”)
    {
    cuando es verdadero e ingresamos carlos solo va por el falso
    que se puede ghacer para q esta condicion sea valida
    gracias

    1. es porque a las variables tipo char solo les cabe un caracter, si tu condición fuera x=’c’ funcionaria (comillas simples). O puedes declarar x como tipo string: string x ; y hacer la condición como tu la hiciste: if(x = “carlos”) con comillas dobles. Aunque ahora que estoy escribiendo esto estoy sospechando que tu pregunta iba enfocada hacia otra cosa ¿no?

      1. si no deje muy clara la pregunta pero es asi..
        char o[30];
        gotoxy(30,5);cout<<"* 1-RENAULT SANDERO *";
        gotoxy(30,6);cout<<"* 2-TOYOTA COROLA *";
        gotoxy(30,7);cout<<"* 3-VOLWSWAGEN *";
        gotoxy(30,8);cout<<"* 4-CORSA *";
        gotoxy(10,11);cout<>o;
        if(o!=”RENAULT sandero”)
        {
        gotoxy(10,8);cout<>op;
        if(op==1)
        {
        gotoxy(10,10);cout<>p;
        gotoxy(10,11);cout<>c;
        v=p*c;
        d=v*25/100;
        vt=v-d;
        gotoxy(10,13);cout<<"El descuento es..";
        gotoxy(55,13);cout<<d;
        gotoxy(10,14);cout<<"El valor final pagar es..";
        gotoxy(55,14);cout<<vt;
        }
        else
        {
        clrscr();
        gotoxy(10,15);cout<<"Marca de vehiculo incorrecta..";
        }
        ahora le en la variable O le coloque !, y me corre en verdadero, pero ya no en falso todas las palabras que coloque son verdaderas…
        te agradesco la ayuda q me brindas..

  3. #include
    using namespace std;
    int main()
    {

    double num_metros,precio,subtotal,descuento,total_pagar,codigo;
    cout<<"**Bienvenidos a empresa maderera**";

    cout<<"productos disponible";
    cout<<"-1.-pino";
    cout<<"-2.-cedro";
    cout<<"-3.-roble";
    cout<>codigo;
    cout<>num_metros;
    if (codigo=1)
    {precio=256;
    subtotal=num_metros*precio;
    descuento=0;
    total_pagar=subtotal-descuento;
    cout<=150)
    {precio=567;
    descuento=(num_metros*precio)*0.30;
    subtotal=(num_metros*precio)-descuento;
    total_pagar=subtotal-descuento;
    cout<<"el producto adqirido es cedro:";}
    else
    {

    if (codigo=2 & num_metros<150)
    {precio=567;
    descuento=0;
    subtotal=(num_metros*precio)-descuento;
    total_pagar=subtotal-descuento;
    cout<<"el producto adqirido es cedro:";}
    else
    {

    if (codigo=3)
    { precio=345;
    subtotal=num_metros*precio;
    descuento=0;
    total_pagar=subtotal-descuento;
    cout<<"el producto adqirido es roble:";}
    }
    }
    }

    cout<<"cantidad de metros comprados:"<<num_metros<<endl;
    cout<<"el descuento es de:"<<descuento<<endl;
    cout<<"subtotal:"<<subtotal<<endl;
    cout<<"total a pagar:"<<total_pagar<<endl;
    cout<<"***gracias por su compra****";

    system("pause");
    return 0;
    }

    TENGO PROBLEMAS CON ESTE PROGRAMITA ALGIEN ME PUEDE AYUDAR

  4. POR FAVOR AYUDENME A VER QUE ESTÁ MAL..U.U

    #include
    #include
    void main()
    {
    int numhij,prestamo;
    float s;
    cout<>s;
    cout<>numhij;
    if (s>12000 & numhij=0)
    cout<<"se le aprueba el prestamo"<<endl;
    else if(10000<s<12000 & numhij=1)
    cout<<"se le concede el prestamo"<<endl;
    else
    cout<<"no se le concede el prestamo"<<endl;
    else if (10000<s<12000 & numhij=2)
    cout<<"se le concede el prestamo"<<endl;
    else
    cout<<"no se le concede el credito"<<endl;
    else if(8000<s<10000 & numhij=0)
    cout<<"se le concede el prestamo"<<endl;
    else
    cout<<"no se le concede el prestamo"<<endl;
    getch();
    }

  5. alguien me podria ayudar con este problema de if
    x fiiss se los agradeceria muchiixximoo
    En un hospital se han realizado analisis a pacientes en los ultimos años, con el objetivo de hacer una aproximacion a los costos por paciente.
    se obtuvo un costo diario segun el tipo de analisis, ademas se determina que los pacientes con edad de entre 14 y 22 años implican un costo adicional del 10%
    la siguiente tabla expresa los costos diarios de acuerdo a los analisis realizados.
    Dar solucion al problema que permita calcular y mostrar el costo total que representa un pciente
    tipos de analisis 1=250 2=365 3=500

  6. Como puedo hacer un programa usando if anidado en donde si la persona es mayor o igual a 18 años tiene derecho a hamburguesa y parqueo gratis y es mayor de edad que no obtenga nada, y q este anidado a esto q si tambien es mujer pueda tener bebida y papas gratis, y si no es mujer solo recibe lo primero
    porfa

  7. como puedo desarrollar un programa usando condicines sensillas if para el siguiente caso Un cliente ordena cierta cantidad de brochas de cerda, rodillos y sellador; las brochas de cerda tienen un 20% de descuento y los rodillos un 15% de descuento. Los datos que se tienen por cada tipo de artículo son: la cantidad pedida y el precio unitario. Además, si se paga de contado todo tiene un descuento del 7%. Elaborar un programa en C++ que calcule y muestre en pantalla el costo total de la orden, tanto para el pago de contado como para el caso de pago de crédito.

  8. ayuda!!!

    Desarrollar un programa que permita administrar un parqueado de motos y
    carros, teniendo en cuenta las siguientes condiciones:
    · El valor por hora para motos es de $1.000 y para autos $2.000
    · Se debe registrar cada vehículo que ingrese
    · Solicitar el tiempo de permanencia y de acuerdo a ello, calcular el
    costo del servicio e imprimirlo en pantalla.
    · El programa debe funcionar para varios vehículos.
    · Al finalizar el día se debe reportar por pantalla:
    o Cantidad de motos registradas
    o Cantidad de autos registrados
    o Subtotal de ingresos por motos
    o Subtotal de ingresos por autos
    o Total de ingresos por autos y motos
    · Incluir en el programa: comentarios aclaratorios, selectiva doble,
    ciclo for, ciclo while y trabajar con funciones.

  9. #include
    #include
    #include
    #include
    main();
    {
    int x;
    printf(“ingrese una opcion del 1 al 13”);
    scanf(“%d”, &x);
    if
    }
    else
    {(“x>=0) && (x<=13)");
    {
    switch(x)
    {
    case 1:
    printf("enero");
    break;
    case 2:
    printf("febrero");
    break;
    case 3:
    printf("marzo");
    break;
    case 4:
    printf("abril");
    break;
    case 5:
    printf ("mayo");
    break;
    case 6:
    printf("junio");
    break;
    case 7:
    printf("julio");
    break;
    case 8.
    printf("agosto");
    break;
    case 9.
    printf("septiembre");
    break;
    case 10.
    printf("octubre");
    break;
    case 11.
    printf("noviembre");
    break;
    case 12.
    printf("diciembre");
    }
    {else}
    printf("ERROR EL MES NO EXISTE");
    }
    getch();
    }

  10. Buenas, te felicito por la pagina es muy buena guia para nosotros,soy nuevo y quisiera pedirte si pudieran ayudarme para hacer un codigo en C++ muy simple, es que necesito un programa en donde se ingrese un grupo de 4 numeros y que el resultado sea el mismo, y para los siguientes 4 numeros sea uno mas que el anterior. Asi por ejemplo si se ingresa los numeros 5, 6, 7, 8 el resultado final sea 2 y si se ingresa 9, 10, 11, 12 el resultado sea 3. Gracias

  11. yo como hago para que los letreros me dalgan aparte;

    #include
    #include
    main()
    {
    int a,ami;
    printf(“digite un numero que usted le califica a un amigo(a) del 1 al 100n”);
    scanf(“%dn”,&a);
    if(ami=a)
    {
    if(a<=19)
    {
    printf("no se soportann");
    }if(a=39)
    {
    printf("no son muy amigos pero se llevan ahin");
    }
    if(a=49)
    {
    printf("son medio amigosn");
    }
    if(a=89)
    {
    printf("son amigos de verdad pero no los mejoresn");
    }
    if(a=100)
    {
    printf("true friends, best friends, verdadera amistadn");
    }

    else
    {
    printf("tuno conoces a esa personan");
    }
    printf("su amistad es: %dn",ami);
    }

    getch();
    return 0;
    }

  12. por favor necesitamos ayuda del siguiente ejercicio en c++ y con estructuras simples como if…
    en un supermercado hay tres departamentos(ropa, comestible, perfumeria)en los cuales se realiza un descuento 8%, 5% y 10% respectivamente por las compras totales mayores de 250bsf. diseñe un programa en c++ que dado el monto de la compra realice los descuentos pertinentes por departamento e indique al usuario su nuevo monto.

    1. Asi lo entendi
      En un supermercado hay tres deaprtamentos ==>ROPA, COMESTIBLE, PERFUMERIA
      en los cuales se realizan descuentos de ==>8%, 5%, 10 RESPECTIVAMENTE
      por las compras totales, MAYORES a 250.
      *Realizar los descuentos por departamentos e indicar al usuario su nuevo monto a pagar(dato de salida).
      (datos de entrada DEPARTEMENTO y MONTO de COMPRA)

      PSEUDOCODIGO:SUPERMERCADO
      variables:
      int op;
      float monc,desc;
      INICIO
      Escribir “****ELIJA UNA DE LAS SIGUIENTES OPCIONES**** ”
      Escribir “1)Departamento de Ropa”
      Escribir “2)Departamento de Comestibles”
      Escribir “3)Departamento de Perfumeria”
      Leer op;
      Escribir “Ingrese monto de la compra: ”
      Leer monc;
      si(op>0 and op250)
      {
      switch(op)
      {
      case 1:
      desc=monc*0.08
      case 2:
      desc=monc*0.05
      case 3:
      desc=monc*0.10
      }
      }sino{desc=0}
      }sino{Escribir “OPCION INCORRECTA”}
      Escribir “Monto a pagar es: “,monc-desc
      FIN

      Lo ise en un block de notas…. =D

  13. buenas tardes por favor podrias ayudarme con este programa:

    realizar un programa para la venta de productos de un supermercado. El programa debe calcular los subtotales por producto dependiendo de las cantidades. El sistema conoce previamente los valores por producto, para luego liquidar el total de la compra. Este supermercado tiene fidelidad con los clientes frecuentes y a ellos les otorgara un 10% de descuento mientras que a los ocasionales no les realizara ningún descuento. Por ultimo preguntará cuantas copias de la factura necesitara y mostrará la cantidad de facturas que necesita.

    El nombre del supermercado aparecerá en las pantallas que opera el usuario que liquida la compra. Se necesita que:
    1. Presente el valor libra por producto.
    2. Solicita producto a producto la cantidad que se quiere obtener
    3. Presenta al final el valor por producto y el valor total antes de descuentos por cliente.

    Gracias

  14. E labore un programa en c++ qe por medio de un menú sentencia de control multiple y función getchar permita calcular el monto a pagar de matricula de los estudiantes del san Vicente teniendo en cuenta si la cantidad de estudiantes por familia es igual o menor a 2 calcular monto regular de lo contrario si son 3 o mas estudiantes por familia calcular 25% de descuento
    Imprima cantidad de estudiantes por familia
    Y el monto calculado seria
    250 matricula

  15. hola x favor nesecito un programa en el q se ingrese la edad y si es menor de 8 imprimer q es niño y si es menor de 18 q diga q es menor de edad y si tiene entre 19 y 60 años adultos y mas de 60 anciano..
    gracias

  16. como puedo encontrar la definicion de else if jajajaa por favor la ocupo yaaa y gracias ayuda de estos ejemplos le mando un saludo ajesssicaa vergara ramirez te amo por si lleees es esto

  17. me puedes ayudar con este progama porfavor
    Realizar un programa que solicite 5 numeros y los presente en forma descendente, para ordenarlos de forma descendente tendran que enviar los paametros que va a ordenar.

  18. hola como puedo resolver este algoritmo :
    Una empresa quiere hacer una compra de varias piezas de la misma clase a una fábrica de refacciones. La empresa, dependiendo del monto total de la compra, decidirá que hacer para pagar al fabricante.
     Si el monto total de la compra excede de $500 000 la empresa tendrá la capacidad de invertir de su propio dinero un 55% del monto de la compra, pedir prestado al banco un 30% y el resto lo pagara solicitando un crédito al fabricante.
     Si el monto total de la compra no excede de $500 000 la empresa tendrá capacidad de invertir de su propio dinero un 70% y el restante 30% lo pagara solicitando crédito al fabricante.
    El fabricante cobra por concepto de intereses un 20% sobre la cantidad que se le pague a crédito.
    tengo esto pero no me sale cual e mi error

    #include
    #include
    #include
    main()
    {
    float costpza,numpzas,montotot,invprop,Pmobanco,ctofab;
    const double ctoint=.20;
    printf(“valor de cada pieza:”);
    scanf(“%f”,&costpza);
    printf(“cantidad de piezas compradas:”);
    scanf(“%f”,&numpzas);
    if (montotot >500,000){
    montotot=costpza * numpzas;

    }else
    {
    invprop=montotot*.55;
    Pmobanco=montotot*.30;
    ctofab=montotot*.15 +(ctofab*.20);

    if (montotot <=500,000){
    montotot=costpza * numpzas;

    }else
    {
    invprop=montotot*.70;
    ctofab=montotot*.15 +(ctofab*.20);
    }
    }
    printf("montototal de la compra:%.2fn",montotot);
    printf( "inversion efectivo:%.2f n",invprop);
    printf("el banco le prestara:%.2f n",Pmobanco);
    printf("compra a crédito:%.2f n",ctofab);

    system("pause");

    }

    1. PSEUDOCODIGO:PAGO DE PIEZAS
      VARIABLES:
      float numpiezas,precio,monto,propiodinero,presbanco,credfabrica,icredfabrica;
      INICIO
      Escribir “Ingrese numero de piezas a comprar”
      Leer numpiezas
      Escribir “Ingrese el precio por pieza”
      Leer precio
      monto=numpiezas*precio
      si(monto>10000)
      {
      propiodinero=monto*0.55
      presbanco=monto*0.3
      credfabrica=monto*0.15
      increfabrica=credfabrica*0.2+credfabrica
      }
      sino
      {
      si(montoInversion es : “,propiodinero
      Escribir “==>Banco presta : “,presbanco
      Escribir “==>Cred Fabrica : “,credfabrica
      Escribir “==>Interes Cred : “,icredfabrica
      Escribir ” ==TOTAL====> “,propiodinero+presbanco+credfabrica+icredfabrica
      Escribir “Aumento de un=> : “,(propiodinero+presbanco+credfabrica+icredfabrica )/monto*100, ” % ”
      FIN

      Buen blog.. =D me sirve de mucha ayuda…. gracias…

      1. PSEUDOCODIGO:PAGO DE PIEZAS
        VARIABLES:
        float numpiezas,precio,monto,propiodinero,presbanco,credfabrica,icredfabrica;
        INICIO
        Escribir “Ingrese numero de piezas a comprar”
        Leer numpiezas
        Escribir “Ingrese el precio por pieza”
        Leer precio
        monto=numpiezas*precio
        si(monto>10000)
        {
        propiodinero=monto*0.55
        presbanco=monto*0.3
        credfabrica=monto*0.15
        increfabrica=credfabrica*0.2+credfabrica
        }
        sino
        {
        si(montoInversion es : “,propiodinero
        Escribir “==>Banco presta : “,presbanco
        Escribir “==>Cred Fabrica : “,credfabrica
        Escribir “==>Interes Cred : “,icredfabrica
        Escribir ” ——————”
        Escribir ” ==TOTAL====> “,propiodinero+presbanco+credfabrica+icredfabrica
        Escribir “Aumento de un==> ” ,(propiodinero+presbanco+credfabrica+icredfabrica )/monto*100, ” % ”
        FIN

        No entiendo porque no sale tal como lo pego…. :S

  19. me pueden decir si este q hice esta bien xfa
    //programa que presente las maravillas del mundo y
    //presente el lugar
    //erick tumbaco
    //administracion de sistema
    //segunda septima seccion
    año lectivo 2012-2013
    #include
    #include>conio.h>
    main()
    {
    int cod;
    clrscr();
    gotoxy(12,5);textcolor(5);textbackground(1998);(“programa de la maravillas del mundo”);
    gotoxy(12,7);textcolor(6);cprintf(****menu****);
    gotoxy(12,9);textcolor(9);cprintf(“1.chichen itza”);
    gotoxy(12,10);textcolor(9);cprintf(“2.coliseo de roma”);
    gotoxy(12,11);textcolor(6);cprintf(“3.cristo redentor”);
    gotoxy(12,12);textcolor(5);cprintf(“4.muralla china”);
    gotoxy(12,13);textcolor(4);cprintf(“5.machu picchu”);
    gotoxy(12,14);textcolor(5);cprintf(“6.petra”);
    gotoxy(12,15);textcolor(3);cprintf(“7.taj mahal”);
    gotoxy(12,17);textcolor(9);cprintf(“ingrese el codigo”);
    gotoxy(52,17);scanf(“%d”,&cod);
    if(cod==1)
    {
    gotoxy(12,19);textcolor(4);cprintf(“chichen itza”);
    gotoxy(12,21);textcolor(7);cprintf(“mexico”);
    }
    else if(==2)
    {
    gotoxy(12,19);textcolor(4);cprintf(“coliseo de roma”);
    gotoxy(12,21);textcolor(7);cprintf(“italaia”);
    }
    else if(==3)
    {
    gotoxy(12,19);textcolor(4);cprintf(“cristo redentor”);
    gotoxy(12,21);textcolor(7);cprintf(“brazil”);
    }
    else if(==4)
    {
    gotoxy(12,19);textcolor(4);cprintf(“muralla china”);
    gotoxy(12,21);textcolor(7);cprintf(“china”);
    }
    else if(==5)
    {
    gotoxy(12,19);textcolor(4);cprintf(“machu picchu”);
    gotoxy(12,21);textcolor(7);cprintf(“peru”);
    }
    else if(==6)
    {
    gotoxy(12,19);textcolor(4);cprintf(“petra”);
    gotoxy(12,21);textcolor(7);cprintf(“jordania”);
    }
    else if(==7)
    {
    gotoxy(12,19);textcolor(4);cprintf(“tal mahal”);
    gotoxy(12,21);textcolor(7);cprintf(“india”);
    }
    else{
    gotoxy(12,19);textcolor(4);cprintf(“el numero ingresadono corresponde al menu”);}
    gotoxy(12,23);textcolor(7);cprintf(“elaborado por:erick tumbaco”);
    getch();
    }

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s