Foro de elhacker.net

Programación => Ejercicios => Mensaje iniciado por: Th3_Cr0w en 5 Mayo 2005, 23:03 pm



Título: 300 - C++ Solución Th3_Cr0w
Publicado por: Th3_Cr0w en 5 Mayo 2005, 23:03 pm
Lo he programado para windows. Si quereis que lo adapte a linux (es cambiar dos lineas) decídmelo.

Código:
/****************************************************
 *                  EJERCICIO 300                   *
 *                 AUTOR: Th3_Cr0w                  *
 ****************************************************/

#include <iostream.h>
#include <stdlib.h>
#include <string>

int main()
{

      string fecha;        // Fecha introducida por el usuario.
      int idia, imes;      // Contienen dia y fecha pasadas a entero.
      int i, contdias = 0; //Contadores
      string sdia, smes;   // En ellas se extrae el día y el mes de la fecha.

      /* El usuario introduce la fecha */
      cout << endl;
      cout << " Introduce una fecha (DD-MM-AAAA).\n";
      cout << " Fecha: ";
      cin >> fecha;
      cout << endl;

      /* Se extraen las subcadenas de caracteres correspondientes a día y mes */
      sdia = fecha.substr(0,2);
      smes = fecha.substr(3,2);

      /* Las cadenas "día" y "mes" son convertidas a enteros */
      idia = atoi(sdia.c_str());
      imes = atoi(smes.c_str());


      for(i = 1; i < imes; i++) // Desde el primer mes del año hasta el anterior al introducido.
      {
         switch(i) // Si el mes es...
         {
           case 2:            // Febrero:
             contdias += 28;  // Mes de 28 días. Lo sumamos al contador.
             break;

           case 4:            // Abril:
           case 6:            // Junio:
           case 9:            // Septiembre:
           case 11:           // Noviembre:
             contdias += 30;  // Mes de 30 días. Lo sumamos al contador.
             break;

           default:           // El resto de los meses:
             contdias += 31;  // Mes de 31 días. Lo sumamos al contador.
         } // Fin del switch
      } // Fin del for

      /* Se suman al contador los días que han pasado durante el mes actual */
      contdias += (idia - 1);

      /* Se muestra el resultado por pantalla */
      cout << " Han pasado " << contdias << " dias desde el inicio del año.\n\n";

      system("PAUSE");
      return 0;
}


Título: Re: 300 - C++ Solución Th3_Cr0w
Publicado por: RadicalEd en 22 Septiembre 2005, 02:19 am
Código:
#include <stdio.h>
#include <windows.h>
int main(void)
{
 int tdias=0, meses[12], c, iDia, iMes;
 meses[0]=31;
 meses[1]=28;
 meses[2]=31;
 meses[3]=30;
 meses[4]=31;
 meses[5]=30;
 meses[6]=31;
 meses[7]=31;
 meses[8]=30;
 meses[9]=31;
 meses[10]=30;
 meses[11]=31;
 printf("Digite dia: ");
 scanf("%d",&iDia);
 printf("Digite mes: ");
 scanf("%d",&iMes);
 for(c=0;c<=iMes-1;c++)
 {
  tdias=tdias+meses[c];
 }
 printf("total dias hasta la fecha: %d",tdias);
 Sleep(2000);
}