Descargar

Ejercicios de programación resueltos

Enviado por Pablo Turmero


Partes: 1, 2

    PROGRAMA #1 Realizar un programa que nos permita sumar dos números.

    #include <stdio.h>

    #include <conio.h>

    void main() /* Suma dos valores */

    {

    int num1=4,num2,num3=6;

    printf("El valor de num1 es %d",num1);

    printf("nEl valor de num3 es %d",num3);

    num2=num1+num3;

    printf("nnum1 + num3 = %d",num2);

    getch();

    }

     

    PROGRAMA #2 Programa que calcula el perímetro de un círculo.

    #include <stdio.h>

    #define pi 3.1416

    #define escribe printf

    void main() /* Calcula el perímetro */

    {

    int r;

    escribe("Introduce el radio: ");

    scanf("%d",&r);

    escribe("El perímetro es: %f",2*pi*r);

    getch();

    }

    PROGRAMA #3 Leer dos números enteros y escribir el mayor o un mensaje si son iguales.

    #include<stdio.h> #include<conio.h> void main() {  int a=0,b=0;  printf("nnt Ingrese el primer valor: ");  scanf("%d",&a);  printf("nnt Ingrese el segundo valor: ");  scanf("%d",&b);  if(a>b)    printf("nnt El valor mayor es: %d",a);  else    if(b>a)      printf("nnt El mayor es: %d",b);     else       printf("Son iguales");  getch(); }

    PROGRAMA #4 Leer un carácter y dos números enteros. Si el carácter leído es un operador aritmético calcular la operación correspondiente, si es cualquier otro mostrar error. Hacer el programa utilizando if-else.

    #include<stdio.h> #include<conio.h> void main() {  int a,b,r;  char op;  printf("nnt Ingrese el caracter: ");  scanf("%c",&op);  printf("nnt Ingrese el primer valor: ");  scanf("%d",&a);  printf("nnt Ingrese el segundo valor: ");  scanf("%d",&b);  if(op=='+')   r=a+b;  else    if(op=='-')      r=a-b;  else      if(op=='*')       r=a*b;   else       if(op=='/')       r=a/b;   else      if(op=='%')      r=a%b;   else   printf("Error");  if(op=='+'||op=='-'||op=='*'||op=='/'||op=='%')                     printf("nnt La respuesta es: %d",r);   getch(); }

     

    PROGRAMA #5 Hacer el mismo programa usando la instrucción switch. Leer un carácter y dos números enteros. Si el carácter leído es un operador aritmético calcular la operación correspondiente, si es cualquier otro mostrar error.

    #include<stdio.h> #include<conio.h> void main() {  int n1,n2,r;  char op;  printf("nnt Ingrese el caracter: ");  scanf("%c",&op);  printf("nnt Ingrese el primer valor: ");  scanf("%d",&n1);  printf("nnt Ingrese el segundo valor: ");  scanf("%d",&n2);  switch(op)  {   case '+':     r=n1+n2;     break;   case '-':     r=n1-n2;     break;   case '*':     r=n1*n2;     break;   case '/':     r=n1/n2;     break;   case '%':     r=n1%n2;     break;   default:     printf("Error");     break;   }  printf("nnt Su respuesta es: %d",r);  getch();}

    PROGRAMA #6 Leer un número entero y visualizar su tabla de multiplicar.

    #include<stdio.h> #include<conio.h> void main() {  int a=0,c=0,r=0;  printf("nnt Ingrese un número: ");  scanf("%d",&a);  while(c<12)   {    c++;    r=a*c;    printf("nnt El resultado es: %d",r);   }  getch(); }

    PROGRAMA #7 Generar enteros de 3 en 3 comenzando por el 2 hasta el valor máximo menor que 30. Calcular la suma de los enteros generados que sean divisibles por 5*/

    #include<stdio.h> #include<conio.h> void main() {  int s=0,a=2;  for(a=2;a<30;a+=3)   {    printf("%d",a);    if(a%5==0)    s+=a;   }    printf("nnt La suma de #s divisibles para 5 es: %d",s);    getch(); }

    PROGRAMA #8 Promedio de una serie de números que finaliza al introducir el 999. El 999 no debe ser tenido en cuenta para la media.

    #include<stdio.h> #include<conio.h> void main() {  int s=0,a=0,d=0,m=0;  do  {   printf("Ingrese un número: ");   scanf("%d",&a);   if(a!=999)    {     s+=a;     d++;}  }while(a!=999);   m=s/d;   printf("nnt La media es: %d",m);   getch();  }

     

    PROGRAMA #9 Presentar los números perfectos del 1 al 1000. Un número es perfecto cuando es igual a la suma de sus divisores excepto el mismo.

    #include<stdio.h> #include<conio.h> void main ( ) { int c=2, d=1, a=0; clrscr ( );      for (c=2;c<=1000;c++)     {for (d=1;c>d;d++)     {f (c%d==0)      a+=c;      }      if (c==a)      printf ("n Numeros perfectos: %d",c);      d=1;      a=0;     }getch ( ); }

     

    PROGRAMA # 10 Leer un número entero positivo y averiguar si es perfecto. Un número es perfecto cuando es igual a la suma de sus divisores excepto el mismo.

    #include<stdio.h> #include<conio.h> void main() {  int a=0,b=0,d;  printf("nnt Ingrese un numero: ");  scanf("%d",&d);  do  {   b++;   if((d%b)==0)    a=a+b;  }while(b!=(d-1));   if(d==a)    {     printf("nnt El numero es perfecto: ");    }   else     printf("nnt El numero no es perfecto: ");  getch(); }

    PROGRAMA #11 Leer dos números enteros a y b mayores o iguales que cero y calcular su producto mediante sumas.

    #include<stdio.h> #include<conio.h> #include<math.h>

    void main() {  int a=0,b=0,d=0,m=0;  clrscr();  printf("nnt Ingrese un numero: ");  scanf("%d",&a);  printf("nnt Ingrese un numero: ");  scanf("%d",&b);  if(a>=0 && b>=0)  {   while(d<b)    {     m=m+a;     d++;    }   printf("nntLa multiplicación es igual:%d",m);  }  else   printf("nnt Los números son incorrectos");  getch(); }

    PROGRAMA #12 Leer un numero entero y averiguar si es o no múltiplo de 9. Un número es múltiplo de 9 si la suma de sus cifras es 9 o múltiplo de 9. EJ.: 99 es múltiplo pues 9+9=18, que a su vez 1+8=9

    #include<stdio.h> #include<conio.h> #include<math.h>

    void main() {  int a=0;  clrscr();  printf("nnt Ingrese un numero: ");  scanf("%d",&a);  if(a>9)   if(a%9==0)    {     printf("nnt El numero %d es multiplo de 9",a);    }   if(9>=a)    if(9%a==0)     {      printf("nnt El numero %d es múltiplo de 9",a);     }    else    printf("nnt No es múltiplo de 9");   getch(); }

    PROGRAMA #13 Generar los N primeros términos de la serie fibonacci. El valor de N (entero y positivo) deberá ser leído por teclado. En esta serie los dos primeros números son 1, y el resto se obtiene sumando los dos anteriores: 1,1,2,3,5,8,13,21,…

    #include<stdio.h> #include<conio.h>

    void main() {  int a=0,b=1,c=0,n=0,cont=1;  clrscr();  printf("nnt Ingrese un numero: ");  scanf("%d",&n);  while(cont<n)    {     a=b;     b=c;     c=a+b;     printf("%d",c);     cont++;    }    getch();  }

     

    PROGRAMA #14 Presentar en la función main ( ) el siguiente menú de opciones:

    1.-Tabla de multiplicar (leer en main ( ) un número y en una función mostrar su tabla de multiplicar)

    2.-Producto por sumas (en main ( ) leer dos números enteros mayores que 0 y en una función calcular su producto mediante sumas sucesivas)

    3.-Mostrar números comprendidos (leer dos números enteros cualesquiera y en función mostrar los números comprendidos entre ambos, no se incluyen)

     

    PROGRAMA #15 Leer por teclado un numero entero N. Escribir los números primos comprendidos entre 1 y N. Diseñar una función que permita averiguar si un numero es o no primo.

    #include<stdio.h> #include<conio.h> int primo(int x); void main() { int n=0,p=0,c=0; printf("nnt Ingrese un número: "); scanf("%d",&n); for(c=1;c<n;c++) { p=primo(c); if(p==1) printf("nnt %d es primo",c); } getch(); } int primo(int x) { int o=0,p=0,b=0; while(o<x) { o++; if(x%o==0) p++; } if(p<=2) b=1; return(b); }

    PROGRAMA #16 Leer una fecha en formato día, mes, año, averiguar si es correcta e indicar el día siguiente.

    #include<stdio.h> #include<conio.h> int veri_fecha (int, int, int); void dia_sig (int, int, int); void main () { int d, m, a, c;    clrscr();    gotoxy(10,4); printf(“Ingrese fecha: n”);       do       {gotoxy(17,6); printf(“                             “);             gotoxy(10,6); printf(“dia: “);             gotoxy(17,6); scanf(“%d”,&d);        }        while(d<1 || d>31);        do        {            gotoxy(17,7); printf(“                             “);gotoxy(10,7); printf(“mes:”);             gotoxy(17,7); scanf(“%d”,&m);        }         while (m<1 || m>12);       do        {gotoxy(17,8); printf(“                 “);             gotoxy(10,8); printf(“año:”);             gotoxy(17,8); scanf(“%d”,&a);         }         while (a<1);             c= veri_fecha(d,m,a);                 if(c==1)                 {             gotoxy(10,10); printf(“fecha correcta”);                         dia_sig(d,m,a);             gotoxy(10,12); printf(“dia siguiente:”);                 }                 else                {             gotoxy(10,10); printf(“fecha incorrecta”);           

                   }    getch(); } int veri_fecha(int d, int m, int a) {  if(m==1 || m==3 || m==5 || m==7 || m==8 || m==10 |m==12)               if(d<=31)                     return (1);                else                     return (0);           else              if (m==2)                    if((a%4==0) && (a%100!=0) || (a%400==0))                             if(d<=29)                                    return(1);                               else                         return(0);                    else                         if(d<=28)                             return(1);                         else                             return(0);             else     if(d<=30)                         return(1);                 else                    return(0); } void dia_sig(int d, int m, int a) {             if(m==1 || m==3|| m==5 || m==7 || m==8 || m==10 || m==12)             { if(d==31)                         {                            if(m==12)                              {d=1; m=1; a++; gotoxy(10,13);printf(“%d  – %d -%d”,d,m,a);                             }                          else                             {                               d=1;                               m++;   gotoxy(10,13); printf(“%d  – %d -%d”,d,m,a);               }             } else {    d++;    gotoxy(10,13); printf(“%d  – %d -%d”,d,m,a); }             }             else            {        if(m==2)        {             if((a%4==0)&&(a%100!=0)||(a%400==0))              {                  if(d==29)                   {d==1;                         m++;             gotoxy(10,13); printf(“%d  – %d -%d”,d,m,a);        }     else     {            d++;             gotoxy(10,13); printf(“%d  – %d -%d”,d,m,a);     } } else {        if(d==28)       {            d=1;             m++;             gotoxy(10,13); printf(“%d  – %d -%d”,d,m,a);       }      else     {            d++;             gotoxy(10,13); printf(“%d  – %d -%d”,d,m,a);     } }                    }                    else                    {                           if(d==30)                           {                    

          d++;       m++;       gotoxy(10,13); printf(“%d  – %d -%d”,d,m,a);   }  else     {            d++;             gotoxy(10,13); printf(“%d  – %d -%d”,d,m,a);     } }                   } }  

     

    PROGRAMA #17 Implementar un programa que sea capaz de calcular el resultado de aplicarla formula siguiente (n i)=n!/(i!*(n-i)!). Para ello se dispone de dos funciones, una de ellas lee un numero por teclado que debe ser mayor e igual que cero teniendo en cuenta además que n tiene que ser necesariamente mayor que i la otra función calcular el factorial de un número.

    #include<stdio.h> #include<conio.h> int lee_numero(); float factorial(int); void main() {  int n,i;  clrscr();     i= lee_numero();    do    {       n=lee_numero();     }     while(n<i);        printf("Resultdo:%.2f",factorial(n)/((factorial(i))*(factorial(n-i))));

    getch(); } int lee_numero() {  int num;    do    { printf("Ingrese un numero:");       scanf("%d",&num);     }     while(num<=0);     return num; } float factorial(int num) { int fact=1,i=1;    for (i=1;i<=num;i++)       fact=fact*i;     return fact; }

     

    PROGRAMA #18 Ingresar un número por teclado que vaya del 1 al 31 y presentar el día correspondiente si el primer día del mes cayó lunes.

    #include<stdio.h> #include<conio.h> void main ( ) { int d, r=0; clrscr ( );   printf ("n ingrese un número: ");   scanf ("%d",&d);        if ((d>0)&&(d<32))           r=d%7;      switch (r)     {      case 1:          printf ("n lunes");      break;      case 2:          printf ("n martes");      break;      case 3:           printf ("n miércoles");      break;      case 4:           printf ("n jueves");       break;       case 5:            printf ("n viernes");       case 6:            printf ("n sabado");       break;       default:           printf ("n domingo");   } getch ( ); }

     

    PROGRAMA #19 Ingresar un número por teclado que vaya del 1 al 31 y presentar el día correspondiente si el primer día del mes cayó lunes

    #include<stdio.h> #include<conio.h> void main ( ) { int x, n; clrscr ( ); do  {  printf ("n ingrese un número del día: ");   scanf ("%d",&n);  }   x=n%7;   switch (x)   {      case 1:     printf ("n lunes");     break;      case 2:    printf ("n martes");   break;      case 3:    printf ("n miércoles"); break;      case 4:    printf ("n jueves");      break;       case 5:    printf ("n viernes");     break;      case 6:    printf ("n sabado");     break;       default:  printf ("n domingo"); break;   } getch ( ); }

     

    PROGRAMA #20 Ingresar un número por teclado y mostrar los números de la serie fibonaci de 1 hasta n siempre y cuando los números sean impares

    //Fila #1

    #include<stdio.h> #include<conio.h> void main ( ) { int c=0, i=0, a=0, b=1; clrscr ( );    while (i<5)    {       c=a+b;       if ((c%2!=0)&&(c%3==0))       {           printf ("n %d",c);           i++;        }        a=b;        a=c;     } getch ( ); }

     

    PROGRAMA #21 Ingresar un número n y presentar los números perfectos de 1 hasta n. Un número es perfecto cuando es igual a la suma de sus divisores excepto el mismo.

    //Fila #2 #include<stdio.h> #include<conio.h> void main ( ) { int c, i, s, n; clrscr ( );     printf ("Ingrese un número:");     scanf ("%d",& n);       for (i=1;i<=n;i++)       {         s=0;         for (c=1;c<i;c++)        {          if (i%c==0)             s+=c;         }         if (s==i);           printf ("n %d",i);        } getch ( ); }

    PROGRAMA #22 Ingresar un número por teclado y mostrar los números primos desde 1 hasta el número ingresado.

    //Fila #3 #include<stdio.h> #include<conio.h> void main ( ) { int n, d, c, j, r=0; clrscr ( );      printf ("ingrese un numero");      do      {scanf ("%d",&n);      }      while (n<=0);       for (c=1;c<=n;c++)      {          for (j=1;j<=c;j++)         {              r=c%j;              if (r==0)              d++;          }         if (d<=2) printf ("n el numero %d es primo",c);            d=0;      } getch ( ); }

     

    PROGRAMA #23 Ingresar un número n y mostrar el factorial de 1 hasta n es decir de cada número hasta el número ingresado.

    //Fila  #4

    #include <stdio.h> #include <conio.h> void main ( ) { int n, i, f=1; clrscr (  );     printf ("ingrese un numero");     scanf ("%d",&n);         for (i=1;i<=n;i++)         {             f=f*i;             printf ("n el factorial de %d! es %d",i,f);          } getch ( ); } PROGRAMA #24 Presentar cuantas veces se repitieron cada numero de un dado normal con una función aleatoria. Donde se debe lanzar el dado 1000 veces #include <stdio.h> #include <conio.h> #include <stdlib.h> void main() {   int uno=0, dos=0, tres=0, cuatro=0, cinco=0, seis=0, cara;   clrscr();      for(int i=1;i<=1000;i++)      { cara=random(6)+1;          switch (cara)         {             case 1:                  uno++; break;             case 2:                 dos++; break;             case 3:                  tres++; break;             case 4:                  cuatro++; break;             case 5:                  cinco++; break;             case 6:                  seis++; break;          }       } printf("n*****LANZAMIENTOS*****");        printf("n cara 1: %d", uno);        printf("n cara 2: %d", dos);        printf("n cara 3: %d", tres);        printf("n cara 4: %d", cuatro);        printf("n cara 5: %d", cinco);        printf("n cara 6: %d", seis);   getch(); }

    PROGRAMA #25 Explicación de funciones; funciones que no reciben parámetros (retornan valor y no retornan valor), funciones que reciben parámetros (retornan valor y no retornan valor). Programa de la suma de dos números.

    #include<stdio.h> #include<conio.h> void suma( ); int suma1( ); void suma2(int ,int ); int suma3(int ,int ); int a=3,b=5; void main() {    int x,y,r;     suma();       r=suma1();        printf("n suma1: %d",r);     x=4;     y=9;     suma2(x,y);       r=suma3(x,y);        printf("n suma3: %d",r);  getch(); }   void suma()  {      printf("n suma: %d",a+b);  }  suma1()  {      return a+b;  }  void suma2(int a, int b)  {      printf("n suma2: %d",a+b);  } int suma3(int n1, int n2)  {      return n1+n2;  }

    PROGRAMA #26 Programa de la función de un número global.

    /* Declaración de funciones. */

    #include <stdio.h>

    void funcion(void); /* prototipo */

    int num=5; /* variable global */

    void main() /* Escribe dos números */

    {

    int num=10; /* variable local */

    printf("%dn",num);

    funcion(); /* llamada */

    getch();

    }

    void funcion(void)

    {

    printf("%dn",num);

    }

     

    PROGRAMA #27 La factorial de un número con una función recursiva

    #include<stdio.h> #include<conio.h> #include<stdlib.h> int factorial(int ); void main() {   int n,fac;   clrscr();      printf("ingrese un numero");      scanf("%d",&n);         fac=factorial(n);      printf("el factorial de %d es %d",n,fac); getch(); } int factorial(int num) {      if(num==1)          return(1);      else          return(num*factorial(num-1)); getch(); }

    PROGRAMA #28 Función recursiva de la potencia de un número.

    #include<stdio.h> #include<conio.h> #include<stdlib.h> int potencia(int , int ); void main() { int base, pot, res; clrscr();      printf("ingrese un numero para la base:");      scanf("%d",&base);      printf("ingrese un numero para el exponente:");      scanf("%d",&pot);         res=potencia(base, pot);      printf("La respuesta es: %d ",res); getch(); } int potencia (int base,int pot) {      if(pot==1)          return(base);      else          return(base*potencia(base, pot-1)); }

     

    PROGRAMA #29 Leer un número entero y convertirlo de decimal a binario

    #include<stdio.h> #include<conio.h> #include<math.h> long binario(int,int); void main() {  int num;  clrscr();  printf("Ingrese numero:");  scanf("%d",&num);  printf("El binario de %d es %ld",num,binario(num,0));  getch(); }  long binario(int n, int pot)  {   int residuo,divisor;   if(n<2)    return n*pow10(pot);   else    {     residuo=n%2;     divisor=n/2;     return ((residuo*pow10(pot))+binario(divisor,pot+1));    }  }

     

    PROGRAMA #30 Ingresar un numero y muestre el numero de la serie fibonacci que este en esa posición del numero ingresado. Ej.: ingreso un número por ej. El 6; la serie fibonacci es: 0, 1, 1, 2, 3, 4, 5, 8 el numero que va a mostrar es 8 porque 0= (0), 1= (1), 2= (1), 3= (2), 4= (3), 5= (5), 6= (8).

    #include<stdio.h> #include<conio.h> #include<math.h> int fibonacci( int ); void main() { int n; clrscr();      printf("Ingrese un número:");      scanf("%d",&n);      printf("El fibonacci  de %d es %d",n ,fibonacci(n)); getch(); } int fibonacci(int num) { if ((num==0)||(num==1))        return num;     else        return (fibonacci(num-1)+fibonacci(num-2)); }

    Trabajo en Grupo con Función Recursiva. PROGRAMA #31 Breve Descripción: Programa que realiza el producto de dos números por medio de sumas utilizando una función recursiva.

    #include<stdio.h> #include<conio.h>

    int multi_x_sumas(int a, int b); void main() {  clrscr();  int x,y;  printf("Ingrese los números que desea sean multiplicados n");  scanf("%d  %d",&x,&y);  printf("%d * %d = %d",x,y,multi_x_sumas(x,y));  getch(); } int multi_x_sumas(int a,int b) {  if(b==1)    return a;  else    return(a+multi_x_sumas(a,b-1));  getch(); }

     

    PROGRAMA #32 Programa que calcula la división por medio de resta utilizando una función recursiva.

    #include <stdio.h> #include <conio.h> int division(int x, int y);

     

    void main() {  clrscr();  int n,r,div;    do    {      printf("Ingrese el dividendo: ");      scanf("%d",&n);    } while(n<0);

     

     do    {      printf("Ingrese el divisor: ");      scanf("%d",&div);    } while(div<=0);        r=division(n,div);     printf("El resultado de la divison es: %d", r);   getch(); } int division(int x, int y) {int c=0,res;  if(x<y)    return 1;  else    {     x=x-y;     c++;     res=division(x,y);     return (1+res);    }  }

     

    PROGRAMA #33 Ingresar un numero y muestre el numero de la serie fibonacci que este en esa posición del numero ingresado. Ej.: ingreso un número por ej. El 6; la serie fibonacci es: 0, 1, 1, 2, 3, 4, 5, 8 el numero que va a mostrar es 8 porque 0= (0), 1= (1), 2= (1), 3= (2), 4= (3), 5= (5), 6= (8).

    #include<stdio.h> #include<conio.h> #include<math.h> int fibonacci( int ); void main() { int n; clrscr();      printf("Ingrese un número:");      scanf("%d",&n);      printf("El fibonacci  de %d es %d",n ,fibonacci(n)); getch(); }

    int fibonacci(int num) {     if ((num==0)||(num==1))        return num;     else        return (fibonacci(num-1)+fibonacci(num-2)); }

    PROGRAMA #34 Programa que asigna un carácter nulo cuando se termina de escribir la cadena.

    /* Vector de tipo char. */

    #include <stdio.h>

    #include<conio.h>

    #include<string.h>

    void main() /* Rellenamos un vector char */

    {

    char cadena[20];

    int i;

    for (i=0;i<19 && cadena[i-1]!=13;i++)

    cadena[i]=getche( );

    if (i==19) cadena[i]='';

    else cadena[i-1]='';

    printf("n%s",cadena);

    getch();

    }

    PROGRAMA #35 Programa que envía un arreglo a una función.

    /* Envío de un array a una función. */

    #include <stdio.h>

    void visualizar(int []); /* prototipo */

    main() /* rellenamos y visualizamos */

    {

    int array[25],i;

    for (i=0;i<25;i++)

    {

    printf("Elemento nº %d",i+1);

    scanf("%d",&array[i]);

    }

    visualizar(&array[0]);

    }

    void visualizar(int array[]) /* desarrollo */

    {

    int i;

    for (i=0;i<25;i++) printf("%d",array[i]);

    }

    PROGRAMA #36 Ingresar una cadena e indicar si es un palíndromo o no. Palíndromo es el que se lee igual de izquierda a derecha y de derecha a izquierda. Ej: dabale a la zorra el abad

    #include<stdio.h> #include<conio.h> #include<string.h> #include<ctype.h>

    char cadena[80]; int palíndromo(void); void quitar_blancos(void); void main() {clrscr();     printf("ingrese una cadena:");     gets(cadena);     quitar_blancos();        if(palíndromo())          printf("la cadena es un palíndromo");        else          printf("la cadena no es un palíndromo");   getch(); } void quitar_blancos() {     int c,i;     char a[80];          for(i=0;i<strlen(cadena);i++)         {              if(!isspace(cadena[i]))             {                   a[c]=cadena[i];                   c++;              }              a[c]='';              strcpy(cadena,a);         } }

    Partes: 1, 2
    Página siguiente