Ejercicios del curso de programación

Topic created · 135 Mensajes · 13458 Visitas
  • [alinear-centro]Ejercicio 21 (M):[/alinear-centro]

    #include 
    
    int main() {
        int num1, num2, num3, num4;
        printf ("Introduce dos numeros \n");
        fflush(stdin);
        scanf("%i",&num1);
        fflush(stdin);
        scanf("%e",&num2);
        fflush(stdin);
        num3 = num1 - num2;
        if(num3 < num1) {
            printf ("Hola"); 
            }
            else if(num3 > num1, num2) {
                 num4 = num1 + num2;
                 printf ("La suma de tus dos numeros %e", num4);
                 }
                 else {}
            system("pause > null");
        return 0;
            }
    

    [alinear-centro]Ejercicio 23(M):[/alinear-centro]

    #include 
     
     int main () {
         int func1[6], d, i;
         for (d = 0; d < 6; d++) {
             if(d == 0) {
             printf("Introduce 1 numero\n");
             scanf("%i", &i);
                  fflush(stdin);
             func1[d] = i;
                      } else {
                      printf("Introduce otro numero\n");
             scanf("%i", &i);
                  fflush(stdin);
             func1[d] = i;
                      }
             }
             for (d = 0; d < 6; d++) {
                 if (func1[d] % 2) {
                       func1[d] = func1[d]/2;
                       } else {
                              func1[d] = func1[d]*2;
                              }
             }
              for (i=0; i
  • @danibonilla1: el 21 está mal, revísalo. No puedes poner comas en un if, como ya vimos en el curso si quieres poner varias condiciones usa &&. De todas formas el programa solo entra en un else if si NO se cumple el if anterior. Además por ahí tienes un else vacío, quítalo. También he visto %e, en el útimo prinft, revisa eso...

    el 23 está mal. Lo que quiero es que el valor de la posición 0 se multiplique por dos, el de la posición 1 se divida entre 2, el de la posición 2 se multiplique por dos, el de la posición 3 se divida entre dos, y así hasta el final. Se puede hacer sin usar el operador % (que por cierto no lo hemos visto). Una pista: usa dos bucles for, en los que tu contador no aumente de uno en uno sino que... ...aumente de dos en dos.

  • [alinear-centro]Ejercicio 21 (M):(Corregido)[/alinear-centro]

    #include 
    
    int main() {
        int num1, num2, num3, num4;
        printf ("Introduce dos numeros \n");
        fflush(stdin);
        scanf("%i",&num1);
        fflush(stdin);
        scanf("%d",&num2);
        fflush(stdin);
        num3 = num1 - num2;
        if(num3 < num1) {
            printf ("Hola"); 
            }
            else if(num3 > num1 && num2) {
                 num4 = num1 + num2;
                 printf ("La suma de tus dos numeros %i", num4);
                 }
            system("pause > null");
        return 0;
            }
    

    [alinear-centro]Ejercicio 23(M):(Corregido)[/alinear-centro]

    #include 
     
     int main () {
         int func1[6], contador, i;
         for (contador = 0; contador < 6; contador++) {
             if(contador == 0) {
             printf("Introduce 1 numero\n");
             scanf("%i", &i);
                  fflush(stdin);
             func1[contador] = i;
                      } else {
                      printf("Introduce otro numero\n");
             scanf("%i", &i);
                  fflush(stdin);
             func1[contador] = i;
                      }
             }
             for (contador = 0; contador < 6; contador = contador +2) {
                 func1[contador] = func1[contador]*2;
             }
             for (contador = 1; contador < 6; contador = contador +2) {
                 func1[contador] = func1[contador]/2;
                 }
              for (i=0; i
  • @danibonilla1: El 21 está mal. En la parte que pones

    else if(num3 > num1 && num2) {
    

    Estás poniendo: si num3 es mayor que num1 y num2 es diferente de cero... (porque recuerda que todo valor diferente de 0 es verdadero).
    El 23 está bien, enhorabuena ^^

  • Ejercicio 24 (B):

    #include 
    
    float decimales()  {
        float n, i, producto;
        n = 9.15;
        i = 1235.91;
        producto = n *= i;
        return producto;
    }
    
    int main()  {
        printf("Hay varios tipos de numeros: Naturales y Racionales \n");
        printf("Los racionales son aquellos que tienen decimales \n");
        printf("Como por ejemplo: \n\n");
        puts("-------------------- \n");
        printf("Hallar el producto de 2 numeros decimales: 9.15 y 1235.91 \n \n");
        printf("%d \n\n", decimales());
        puts("-------------------- \n\n");
        printf("Hasta aqui la explicacion.. Buena suerte");
        system("pause > null");
        return 0;
    }
    

    Ejercicio 25 (M):

    En proceso tiooo, esperate un poco xd
    

    Ejercicio 26 (A):

     Algún día lo haré xD
    

    No hice algunos porque es tarde y no tengo tiempo, los anexare luego..

    Por cierto seria cool que llevaras un puntaje de los ejercicios, osea de quienes llevan mas ejercicios correctos sin tu revisión, así como en la escuela y las notas xDD.

    Saludos

  • Ejercicio 26(A):

    #include 
    
    
    void Repetir_Caracter(char Letra, int Matriz[], int tamano_array)
    {
        int verificador, contador;
        verificador = Matriz[0];
    
        for(contador=0;contador
    

    ejercicio 25 (M):

    #include 
    
    int semiSuma(int array1[],int cantArray1,int array2[],int cantArray2)
    {
        int contador,almacenArray1=0,almacenArray2=0;
    
        if(cantArray1 != cantArray2)
        {
            for(contador=0;contador
    

    el del ejercicio anterior, lo que decias de ahorraba un for, era sin pedir al usuario rellenar el array?, por lo que pude ver el code no veia otro ahorro del for XD

    y aer fijate este ejercicio 26 que me parece tambien algo largo, tengo cada dia menos practica con el C, ya que el python ta mejorsito je!,

    pd: iba a ser este numero 26 con prototipos de funciones XD, me gustaria saber porque no explicaste eso del prototipo que es mejor en el orden al programar algo en C, segun el libro de aprendiendo C en 21 dias :icon_razz:


    hr
    edit: aprovecho a colocar el ejercicio 25 y a decirte si lo de mostrar numero flotante sin usar float ni casting, era algun artificio con el entero devuelto y el resto osea con ( / y % ), eso se me ocurrio aer si era eso, sino ahi me avisas 😉

  • @pedroso100: si lees bien el enunciado:
    Diseña una función que reciba dos números con decimales[...]
    ¿Tu función recibe algo? No. Por cierto en la línea en la que pones:
    producto = n *= i;
    Eso no solo no lo hemos visto todavía en el curso sino que es completamente innecesario. Simplemente pon:
    producto = (n * i);

    Y en cuanto a los ejercicios resueltos, no tengo ganas de ponerme a contar _xD_ , pero si alguien se ofrece a hacerlo me fiaré de él y si estáis de acuerdo todos lo pondré al principio del hilo.

    @freak7z: los dos al pelo 😛

  • @freak7z: Por fin postea alguien _xD_
    Está bien y mal a la vez xD, está bien por que funciona, pero está mal porque no hemos visto aún en el curso el operador de desreferencia u.u eso es trampa. No puedes usar el asterisco, tienes que usar la propia variable.

  • ejercicio 21(M)
    fijo 100% mal xD

    #include 
    
    int main()  {
        int numero1;
        int numero2;
        printf("Elige un número 1 ");  
        scanf("%i", &numero1);
        printf("Elige un número 2 ");
        scanf("%i", &numero2);
        if(numero1 / numero2 < numero1) {
                           printf("Hola que tal");
                           }
                       if(numero1 / numero2 > numero1) {
                                  if(numero1 / numero2 < numero2) {
                                             printf("Me despido, adios");
                                             if(numero1 / numero2 > numero1, numero2) {
                                                        printf("i", numero1+numero2);
                                                        
                           system("pause > null");
    }                     
    }
                          }
                          }
  • La "diferencia" de dos números es su resta, no su división... Por cierto, ¿qué devuelve tu función main? Yo no veo ningún return 😛

    Además, ten en cuenta que si no se cumple la condición del primer if el programa ya no hará nada, porque cuando un if no se cumple el programa salta a lo que halla después de la llave de cierre de ese if. En el post #8 puedes ver ejemplos de condiciones. Si lo miras, te recomendaría que vieras lo que hace &&, no estoy seguro si te hace falta para este problema pero es mejor que poner

    if(condición1) {
        if(condición2) {
            acción
        }
    }
    

    En lugar de eso puedes poner

    if(condición1 && condición2) {
        acción
    }
    

    Este ejercicio en concreto es para practicar condiciones encadenadas(if() else if() else if() else if()... else()). Y eso está en el mismo post #9.