Menú

Mostrar Mensajes

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ú

Mensajes - leosansan

#1011
Cita de: sora_ori en 17 Febrero 2013, 12:52 PM
Estoy realizando un programa que calcula el máximo de tres números usando una función que nos de el máximo de dos números


Además de en los argumentos de la función, tienes varios errores menores que te comento en el código:

Código (cpp) [Seleccionar]
#include <stdio.h>
#include <stdlib.h>

int mayor(int n1,int n2);/*aqui tenias"{" en lugar de ;*/

int main(){
 int num1, num2, num3;
 int max; /*<==aqui esta de mas "mayor"*/
 printf("Introduce un numero: ");
 scanf("%d",&num1);
 printf("Introduce un numero: ");
 scanf("%d",&num2);
 printf("Introduce un numero: ");
 scanf("%d",&num3);
 max = mayor(num1, num2);
 printf("El mayor es: %d \n", mayor(max, num3));/*y aqui tenias dos %d */
 system("PAUSE");
 return 0;
}
// FUNCION
int mayor(int n1,int n2){
if (n1 > n2)
       return n1;
else
       return n2;
}


Aunque sería más guay calcular el máximo con una función que calcule el máximo de tres:

Código (cpp) [Seleccionar]


#include <stdio.h>
#include <stdlib.h>

int mayor(int n1,int n2,int n3);

 int main(){

 int num1, num2, num3;
 int max;

 printf("Introduce un numero: ");
 scanf("%d",&num1);
 printf("Introduce un numero: ");
 scanf("%d",&num2);
 printf("Introduce un numero: ");
 scanf("%d",&num3);
 max = mayor(num1, num2,num3);
 printf("El mayor es: %d \n", max);
 system("pause");
 return 0;
}
// FUNCION
int mayor(int n1,int n2,int n3){
 if ((n1= n1>n2 ? n1:n2)>(n3))
   return n1;
 else
 return n3;
}


Saluditos!.
#1012
Cita de: TopoJunior en 14 Febrero 2013, 19:58 PM
El código hasta ahora me va bien. Explico : Van a ser 3 palabras, no solo uno, por eso creé el aleatorio.

Pues yo te he puesto cuatro  :-\. Era para que una de ellas tuviera repetida alguna letra  :laugh:.

Es un código muy mejorable, pero así tienes donde fijarte:


Código (cpp) [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <ctype.h>
#include <string.h>

int main(){
  char ch;
  char palabra[10]={0},palabras[4][10]={"futbol","pala","balon","pelota"} ;/*con letra repetida*/
  int i,j,cont=0,errores=0,intentos=0,flag=0;
  srand (time(NULL));
  int aleatorio;
  aleatorio =rand() % 3;
  for (i=0;i<3;i++)
    printf("%s  ",palabras[i]); /*para que veas las palabras*/
  printf("\n\nTe ha tocado esta palabra: \n\n");
  for (i=0;palabras[aleatorio][i]!='\0';i++){
     printf("_ ");palabra[i]='_';
  }
  palabra[i]='\0';
  printf("\n\n Tienes 10 intentos.\n\n");
  do{
    intentos++;
    printf("\n\nVe escribiendo las letras. Intento %d\n",intentos);
    ch=getchar();
    while (getchar ()!='\n');
    for (i=0;palabra[i]!='\0';i++){
      if(ch == palabras[aleatorio][i] && palabra[i]=='_') {
          palabra[i]=toupper(ch);
          puts("\n");
          for (j=0;j<strlen (palabra);j++)
            printf("%c ",palabra[j]);
          flag=1;cont++;
      }
    }
    if (flag ==0) {
      errores++;
      printf("Has fallado. Llevas %d errores.\n", errores);
    }
    else {
      printf("  Bien, has acertado.\n");
      flag=0;
    }
    if (cont==strlen (palabra)){
       if (errores==0)
        printf("\n\n  TOTAL ACIERTO.\n\n");
       else
        printf("\n\n  ACIERTO con %d errores.\n\n",errores);
       return 1;
    }
  } while (intentos<10);
  return EXIT_SUCCESS;
}


Saluditos!.
#1013
Para quien nos "vea" parecería que mi código no funcionase correctamente, y todo lo contrario, hace lo que se le pide. así que sólo unos pequños comentarios, entre tú y yo:

Cita de: rir3760 en 14 Febrero 2013, 17:32 PM
Algunos comentarios:

* Los elementos de un array pueden inicializarse mediante una lista de valores, si cada elemento es a su vez un array (como es tu caso) se deben utilizar listas anidadas, de esta forma:
Código (cpp) [Seleccionar]
int M[2][12] = {
   {0, 3, 3, 6, 1, 4, 6, 2, 5, 0, 3, 5},
   {0, 3, 4, 0, 2, 5, 0, 3, 6, 1, 4, 6}
}


Creo que aquí hablaríamos de "claridad", ya que "creo" que tan correcta es una como otra opción.
Por ejemplo, al declarar una matriz de tres por tres se me puede "apetecer" la primera o la segunda forma:


Código (cpp) [Seleccionar]
a[3][3]={1,2,3,4,5,6,7,8,9};

a[3][3]={{1,2,3},{4,5,6},{7,8,9};


No niego que la segunda es más ·visible" y menos expuesta a errores, pero será igual de válida que la primera.

Citar* El operador lógico AND tiene mayor prioridad que el operador lógico OR, por ello en esta expresión los paréntesis son superfluos (con o sin ellos el resultado es el mismo):
a%4 ==0 && a%100!=0 ||  (a%400==0)


Superfluo no es sinónimo de mal, sino exceso de celo. Reconozco que en este caso peque del copy´pega de un código antiguo. No es que quiera disculpar ese "exceso", pero en general más vale pecar por exceso que por defecto, más estos códigos que yo al menos hago con cierta "alegría".


Citar
* El resultado de los mentados operadores es uno si se cumple la condición y cero en caso contrario, en base a ello si revisamos el condicional:]
if (a%4 ==0 && a%100!=0 ||  (a%400==0))
   M_=M[1][mes_-1];
else
   M_=M[0][mes_-1];

Este se puede reducir a:
M_ = M[a%4 == 0 && a%100 != 0 || a%400 == 0][mes_-1];

Esto último es de veteranía. Aunque considero que el if-else es más "entendible" para quien propuso el tema, en virtud de lo que colgó, no dejo de reconocer que es algo a tener en cuenta.

Conclusión: gracias por las puntualizaciones, agudas como siempre y que me ayudan a mejorar hasta los detalles más nimios.

Saluditos!.
  :silbar:
#1014
Programación C/C++ / Re: Ayuda con getchar:(
14 Febrero 2013, 16:22 PM
Cita de: WyliFlech en 13 Febrero 2013, 22:22 PM
................... Peeeeeeeeeeeeeeeeeeeeeeeeeeeeeeero, si tu pones U, que pertenece a la palabra, te dice que has fallado, como hago para que eso no pase? En el sentido de que, que tengo que hacer para que reconozca la U ? pero antes de la F por ejemplo.. No sé si me expliqué bien...

Por ejemplo:

Código (cpp) [Seleccionar]
#include <stdio.h>
#include <time.h>

int main(){
  char ch;
  char ch1;
  int errores1;
  errores1 = 0;
  srand (time(NULL));
  int aleatorio;
  aleatorio =+1 +rand() % 3;
   //if(aleatorio == 2)
 
  printf("Te ha tocado esta palabra\n"); // La palabra es FUTBOL
  printf("_ _ _ _ _ _");
  printf("Ve escribiendo las letras\n");

  ch=getchar();
  while (getchar ()!='\n');
  if(ch == 'f') {
    printf("Bien, has acertado. F _ _ _ _ _\n");
  }
  else if(ch == 'u') {
    printf("Has acertado. _U _ _ _ _\n");
  }
  else  {
    errores1++;
    printf("Has fallado. Llevas %d errores.\n", errores1);
  }
  return 0;
}


Saluditos!.
#1015
Y según Wikipedia:

Código (cpp) [Seleccionar]
#include <stdio.h>
#include<locale.h>
#include <stdlib.h>
int main()
{
   setlocale(LC_ALL, "Spanish");
   int dia_=0,dia_semana=0,M_=0,mes_,a=0;
   int M[2][12] = {0,3,3,6,1,4,6,2,5,0,3,5,
   0,3,4,0,2,5,0,3,6,1,4,6 };
   char dia[7][10] = {"Domingo","Lunes","Martes","Miercoles","Jueves","Viernes","Sabado"};
   while (1){
     printf ("Indique el  mes (1-12): ");
     fflush (stdout);
     scanf("%d",&mes_);
     printf ("Indique el día del mes: ");
     fflush (stdout);
     scanf("%d",&dia_);
     printf ("Indique el año: ");
     fflush (stdout);
     scanf("%d",&a);
     if  (a%4 ==0 && a%100!=0 ||  (a%400==0))
       M_=M[1][mes_-1];
     else
       M_=M[0][mes_-1];
     dia_semana=((a-1)%7+((a-1)/4 - 3*(((a-1)/100)+1)/4)%7+M_+dia_%7)%7;
      printf("\n%s  dia de la semana %d\n\n",dia[dia_semana],dia_semana);
   }
   return EXIT_SUCCESS;
}



Saluditos!.
#1016
Programación C/C++ / Re: Ayuda con getchar:(
13 Febrero 2013, 22:48 PM
Mejor pon el código que llevas, a ver si nos enteramos mejor.
Saluditos!.
#1017
Cita de: amchacon en 12 Febrero 2013, 21:39 PM
Os dejo aquí un programa que me creé para calcular determinantes de matrices NxN. Personalmente no me gustan los algoritmos recursivos, pero funcionan de maravilla en este caso :)


Consejos, mejoras ;)

Y tanto que funciona bien ¡ ¡ ¡

Sólo unas pequeñas observaciones:

* Si el tamaño es 1 el determinante es el número y en tu código lo transformas automáticamente en un determinante de 2x2.

* Cambiaría, para que no resulte "espesa" la entrada de datos y que los índices sean "matemáticos" (no se suele usar en cálculo (0,0) sino (1,1) para la primera posición):

Código (cpp) [Seleccionar]
void Leer_matriz(int** a,unsigned int MAX)
{
    int i,j;
    cout<<"Introduce el numero para la posicion: "<<endl;
    for (j = 0; j < MAX; j++)
        for (i = 0; i < MAX; i++)
        {
            cout<<" ("<<i+1<<","<<j+1<<") = ";
            cin>>a[i][j];
        }
}


Como ves, chorradas al fin y al cabo.

Saluditos!.

P.D:Y gracias por compartir
;-) ;-) ;-)
#1018
Cita de: rir3760 en 13 Febrero 2013, 02:50 AM

Una discusión algo técnica (y en ingles) donde se explica el porque y se da una alternativa es


En resumen, con paréntesis al final se inicializan a cero, comprobado:

Código (cpp) [Seleccionar]
int *factores=new int[32]();//con parentesis se inicializan a cero

No siendo necesario:

Código (cpp) [Seleccionar]
for (i=0;i<32;i++)
    factores[i]=0;


Saluditos!.
. .... y gracias n-ésimas amigo rir.
#1019
Cita de: 7hongo7 en 13 Febrero 2013, 16:29 PM
...............................tengo que hacer un programa que imprime en pantalla el numero que cae el dia de la semana osea del 1 al 7 ingresando Dia,Mes,Año.


Para tener el código no tienes más que mirarte este enlace:

http://es.wikipedia.org/wiki/Algoritmo_para_calcular_el_d%C3%ADa_de_la_semana


Saluditos!.

P.D: Por cierto ¿por qué le llamas al tema "programilla con sumas?. no indica nada, y lo de ayuda se sobreentiende.

Podías llamarle "entrar fecha y me dé día de la semana", es más explícito de tu problema.

Si tienes dudas no dudes  :P  en preguntar.  ;)
#1020
Cita de: smdiegoarmando en 13 Febrero 2013, 03:26 AM
Como agregarle colores en fondo y texto a un programa como para turbo C o dev C ayuda programacion en lenguaje C ?

Espero que te sirva el ejemplo:

Código (cpp) [Seleccionar]
#include <windows.h>
#include <stdio.h>
#include<stdlib.h>

int main()
{
    system("color 70");

    HANDLE hOut;

    hOut = GetStdHandle(STD_OUTPUT_HANDLE);

    SetConsoleTextAttribute(hOut,
                            FOREGROUND_RED);
    printf ("Red     \n");
    SetConsoleTextAttribute(hOut,
                            FOREGROUND_RED |
                            FOREGROUND_INTENSITY);
    printf ("Red\n" );

    SetConsoleTextAttribute(hOut,
                            FOREGROUND_GREEN);
    printf ("Green   \n");
    SetConsoleTextAttribute(hOut,
                            FOREGROUND_GREEN |
                            FOREGROUND_INTENSITY);
    printf ("Green\n");

    SetConsoleTextAttribute(hOut,
                            FOREGROUND_BLUE);
    printf ("Blue    \n");
    SetConsoleTextAttribute(hOut,
                            FOREGROUND_BLUE |
                            FOREGROUND_INTENSITY);
    printf ("Blue\n");

    SetConsoleTextAttribute(hOut,
                            FOREGROUND_RED |
                            FOREGROUND_GREEN);
    printf ("Yellow  \n");
    SetConsoleTextAttribute(hOut,
                            FOREGROUND_RED |
                            FOREGROUND_GREEN |
                            FOREGROUND_INTENSITY);
    printf ("Yellow\n");

    SetConsoleTextAttribute(hOut,
                            FOREGROUND_GREEN |
                            FOREGROUND_BLUE);
    printf ("Cyan    \n");
    SetConsoleTextAttribute(hOut,
                            FOREGROUND_GREEN |
                            FOREGROUND_BLUE |
                            FOREGROUND_INTENSITY);
    printf ("Cyan\n");

    SetConsoleTextAttribute(hOut,
                            FOREGROUND_BLUE |
                            FOREGROUND_RED);
    printf ("Magenta \n");
    SetConsoleTextAttribute(hOut,
                            FOREGROUND_BLUE |
                            FOREGROUND_RED |
                            FOREGROUND_INTENSITY);
    printf ("Magenta\n");

    SetConsoleTextAttribute(hOut,
                            FOREGROUND_RED |
                            FOREGROUND_GREEN |
                            FOREGROUND_BLUE);
    printf ("White   \n");
    SetConsoleTextAttribute(hOut,
                            FOREGROUND_RED |
                            FOREGROUND_GREEN |
                            FOREGROUND_BLUE |
                            FOREGROUND_INTENSITY);
    printf ("White\n");


// Set text color as Yellow with white background.
   /* SetConsoleTextAttribute(
    GetStdHandle( STD_OUTPUT_HANDLE ),
    FOREGROUND_INTENSITY              | // Set Text color
    FOREGROUND_RED | FOREGROUND_GREEN | // Text color as Yellow.
    BACKGROUND_INTENSITY              | // Set Background color
    BACKGROUND_RED | BACKGROUND_GREEN | BACKGROUND_BLUE ); // White Bg*/
   

/*PARA system ("color n n"):
    DEBES COGER UNA COMBINACIóN DE NUMERO Y LETRA:
Color de consola :
0 = Negro
1 = Azul
2 = Verde
3 = Aguamarina
4 = Rojo
5 = Purpura
6 = Amarillo
7 = Blanco
8 = Gris
9 = Azul claro

Color de texto:
A = Verde claro
B = Aguamarina claro
C = Rojo claro
D = Purpura claro
E = Amarillo claro
F = Blanco brillante*/
   
    return 0;
}


Saluditos!.