elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Security Series.XSS. [Cross Site Scripting]


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Ejercicios
| | | |-+  Soluciones ejercicios C
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Soluciones ejercicios C  (Leído 51,326 veces)
Cobac
Ex-Staff
*
Desconectado Desconectado

Mensajes: 5.465


Still In Development


Ver Perfil
Soluciones ejercicios C
« en: 6 Julio 2004, 06:54 am »

En este tema se irán añadiendo las soluciones a los ejercicios de C,  los usuarios que tengais vuestra solución crear un tema nuevo y pronto será unido y ordenado en este tema.

Si quereís hacer alusión a alguna solución, el titulo del mensaje ponerlo de esta forma:

Citar
100 - C Solución cokeing

asi se ve enseguida el número del ejercicio, el lenguaje y la solución a la que haceis referencia (de ahi lo de poner el nick :P)

salu2


« Última modificación: 7 Julio 2004, 18:38 pm por Cobac » En línea

PIV 2533 @ 2720Mhz | 512MB DRR333 @ 358 | 160 Gb + 40 Gb Seagate Barracuda

En la Edad Media la Iglesia robaba con los diezmos. En el siglo XXI la SGAE roba con sus cánones.
Cobac
Ex-Staff
*
Desconectado Desconectado

Mensajes: 5.465


Still In Development


Ver Perfil
Soluciones ejercicios C 100
« Respuesta #1 en: 6 Julio 2004, 06:55 am »

Soluciones al ejercicio 100

codigo de Cokeing:

Código:
/***************************************************/
/****************************** EJ_100 *************/
/***************************************************/
/*                              cokeing@gmail.com  */
/***************************************************/


#include <stdio.h>
main(){

float x;
int y=0;
char sis;

do{
        printf("Introduce temperatura, con F o C adelante. ej: 'F78.3' o 'C25.2' -> ");
        scanf("%c%f",&sis,&x);

        if(sis=='F') {
                x=(5/9.)*(x-32);
                printf("  >> La Temperatura en Celsius es: %1.1f\n\n",x);
                y=1;
        }

        if(sis=='C') {
                x=(x+(160/9.))/(5/9.);
                printf("  >> La Temperatura en Farenheit es: %1.1f\n\n",x);
                y=1;
        }
getchar();
}while(y==0);
}

codigo de Cobac:
Código:
#include <stdio.h>

main()
{
int cat;
float temp, sol;

temp=0, cat=0;

    printf("Escribe temperatura\n");
    scanf("%f", &temp);
   
    printf("1.-De Celsius a Farenheit\n");
    printf("2.-De Farenheit a Celsius\n");
    scanf("%d", &cat);
   
   
    switch(cat){
   
    case 1:
        sol =(temp+(160/9.))/(5/9.);
        printf("Son %.2f grados Farenheit", sol);
    break;
   
    case 2:
        sol = (5/9.)*(temp-32);
        printf("Son %.2f grados Celsius", sol);
    break;
   
    default:
        printf("\n\nAprende a escribir xDD\n");
    break;
   
    }
   
    getchar();
    getchar();
}

Código de kasswed

Código:
#include <stdio.h>

float convertiraC (float grados);
float convertiraF (float grados);

main()
{
      float temperatura;
      char opcion;
      float convertido;
      printf("Introduce una temperatura: ");
      scanf("%f", &temperatura);
      fflush(stdin);
      printf("\nSi la temperatura esta en Celsius pon una 'c', si esta Farenheit, pon una 'f': ");
      scanf("%c", &opcion);
      fflush(stdin);
      if ( (opcion == 'c') || (opcion == 'C') ){
         convertido = convertiraF (temperatura);
         printf("\nLa temperatura en grados Celsius es %.2f y en Farenheit es %.2f", temperatura, convertido);
         }
      else if ((opcion == 'f') || (opcion == 'F')){
         convertido = convertiraC (temperatura);
         printf("\nLa temperatura en grados Farenheit es %.2f y en Celsius es %.2f", temperatura, convertido);
         }
      else printf("\nCaracter incorrecto o paso incorrecto.");
      getchar();
      getchar();
}

float convertiraF (float grados){
    return (grados+(160/9))/(5/9.);
    }
float convertiraC (float grados){
    return (5/9)*(grados-32);
    }


« Última modificación: 24 Diciembre 2005, 02:32 am por Cobac » En línea

PIV 2533 @ 2720Mhz | 512MB DRR333 @ 358 | 160 Gb + 40 Gb Seagate Barracuda

En la Edad Media la Iglesia robaba con los diezmos. En el siglo XXI la SGAE roba con sus cánones.
Cobac
Ex-Staff
*
Desconectado Desconectado

Mensajes: 5.465


Still In Development


Ver Perfil
Soluciones ejercicios C 101
« Respuesta #2 en: 7 Julio 2004, 03:48 am »

Soluciones al ejercicio 101

Código de SCYUK:

Código:
#include <stdio.h>
main()
{
float total;
int num;
num=0;
total=0;

printf("\nIntroduce el presupuesto que posee tu bolsillo en monedas de un centimo:\n");
scanf("%d",&num);
total=total+(num*0.01);

printf("\nIntroduce el presupuesto que posee tu bolsillo en monedas de dos centimos:\n");
scanf("%d",&num);
total=total+(num*0.02);

printf("\nIntroduce el presupuesto que posee tu bolsillo en monedas de cinco centimos:\n");
scanf("%d",&num);
total=total+(num*0.05);

printf("\nIntroduce el presupuesto que posee tu bolsillo en monedas de diez centimos:\n");
scanf("%d",&num);
total=total+(num*0.10);

printf("\nIntroduce el presupuesto que posee tu bolsillo en monedas de veinte centimos:\n");
scanf("%d",&num);
total=total+(num*0.20);

printf("\nIntroduce el presupuesto que posee tu bolsillo en monedas de cincuenta centimos:\n");
scanf("%d",&num);
total=total+(num*0.50);

printf("\nIntroduce el presupuesto que posee tu bolsillo en monedas de un euro:\n");
scanf("%d",&num);
total=total+(num*1);

printf("\nIntroduce el presupuesto que posee tu bolsillo en monedas de dos euros:\n");
scanf("%d",&num);
total=total+(num*2);

printf("\nIntroduce el presupuesto que posee tu bolsillo en billetes de cinco euros:\n");
scanf("%d",&num);
total=total+(num*5);

printf("\nIntroduce el presupuesto que posee tu bolsillo en billetes de diez euros:\n");
scanf("%d",&num);
total=total+(num*10);

printf("\nIntroduce el presupuesto que posee tu bolsillo en billetes de veinte euros:\n");
scanf("%d",&num);
total=total+(num*20);

printf("\nIntroduce el presupuesto que posee tu bolsillo en billetes de cincuenta euros:\n");
scanf("%d",&num);
total=total+(num*50);


printf("\nIntroduce el presupuesto que posee tu bolsillo en billetes de cien euros:\n");
scanf("%d",&num);
total=total+(num*100);

printf("\nIntroduce el presupuesto que posee tu bolsillo en billetes de doscientos euros:\n");
scanf("%d",&num);
total=total+(num*200);

printf("\nIntroduce el presupuesto que posee tu bolsillo en billetes de quinientos euros:\n");
scanf("%d",&num);
total=total+(num*500);

printf("\nEl total de tu dinero es %f euros.\n",total);
}

Código de Cobac:

Código:
#include <stdio.h>

main()
{
int x=0;
float total=0;
int monedas[]={50000,20000,10000,5000,2000,1000,500,200,100,50,20,10,5,2,1};
int tipomon[]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};

    for(x=0; x < 15; x++)
    {
        if(monedas[x] >= 100)
        {               
                if(monedas[x] >= 100 && monedas[x] <= 200)
                {
                                printf("Cuantas monedas de %i euros\n", monedas[x]/100);
                                scanf("%i", &tipomon[x]);
                }
                else
                {
                                printf("Cuantos Billetes de %i euros\n", monedas[x]/100);
                                scanf("%i", &tipomon[x]);
                }
        }
        else
        {
                printf("Cuantas monedas de %i centimos\n", monedas[x]);
                scanf("%i", &tipomon[x]);
        }
    }
   
    for(x=0; x < 15; x++)
    {
        total = total + monedas[x]*tipomon[x];
    }
       
    printf("La suma total es: %.2f euros\n\n", total/100);
       
getchar();
getchar();
}

Código de cokeing:

Código:
/***************************************************/
/****************************** EJ_101 *************/
/***************************************************/
/*                              cokeing@gmail.com  */
/***************************************************/

#include <stdio.h>
main(){
float mon;
int billetes[15]={1,2,5,10,20,50,100,200,500,1000,2000,5000,10000,20000,50000};
int x,temp;

for(x=0;x<15;x++){
   printf("Introduce cantidad de la siguiente moneda >> ");
    if(billetes[x]<100) printf("%d centimos: ",billetes[x]);
    else printf("%d euros: ",(billetes[x]/100));
   scanf("%d",&temp);
   mon+=temp*billetes[x];
}

printf("\nTotal >> %1.0f euros",(mon/100));

x=mon/100;
mon=mon-x;
mon=mon/1000;
printf(" y %1.0f centimos.",mon);
}
« Última modificación: 8 Julio 2004, 06:16 am por Cobac » En línea

PIV 2533 @ 2720Mhz | 512MB DRR333 @ 358 | 160 Gb + 40 Gb Seagate Barracuda

En la Edad Media la Iglesia robaba con los diezmos. En el siglo XXI la SGAE roba con sus cánones.
Cobac
Ex-Staff
*
Desconectado Desconectado

Mensajes: 5.465


Still In Development


Ver Perfil
Soluciones ejercicios C 102
« Respuesta #3 en: 7 Julio 2004, 03:50 am »

Soluciones al ejercicio 102


Código de Cobac:

Código:
#include <stdio.h>

main()
{
int num=0, bin[80], x=0, t=0;

    printf("Introduce el numero\n");
    scanf("%i", &num);
   
    //Ya se que esto es trampa, pero asi todos aprendemos xD
   
    printf("\nEn hexadecimal: ");
    printf("%x",num);
   
    for(x=0; num >= 1; x++)
    {
        bin[x] = num%2;
        num = num/2;
    }
   
    printf("\nEn binario: ");
   
    for(t=x-1; t >= 0; t--)
    {
        printf("%i", bin[t]);
    }
   
    printf("\n");
           
getchar();
getchar();
}

Código de Charlie:

Código:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main() {
  int dec,bin[24],i,aux,rest;
  char hex[6],let;
  printf ("\t\tPROGRAMA TRANSFORMADOR NUMEROS\n");
  printf ("\t\t******************************\n\n");
  printf ("\t\tA continuacion te pediremos que introduzcas un numero y te\n");
  printf ("\t\tdiremos su valor en decimal y hexadecimal\n\n");
  printf ("\t\tPulsa una tecla para continuar...\n");
  getchar();
  system("clear");
  printf("Introduce un numero en decimal(mayor que 0 y menor que 10.000.000):");
  scanf("%d",&dec);
  fflush(stdin);
  if (dec<0 || dec>10000000) {
    do {
          printf("Numero incorrecto.Introduzca numero valido (0-10.000.000):");
          scanf("%d",&dec);
          fflush(stdin);
          }while (dec<0 || dec>10000000);
  }
  aux=dec;
  for(i=0;i<24;i++) {
    rest=aux%2;
    bin[i]=rest;
    aux=aux/2;
  }
  printf("El numero en binario es: ");
  for (i=23;i>=0;i--) {
    printf("%d ",bin[i]);
  }
  aux=dec;
  for(i=0;i<7;i++) {
    rest=aux%16;
      if(rest==0)
        let='0';
      if(rest==1)
        let='1';
      if(rest==2)
        let='2';
      if(rest==3)
        let='3';
      if(rest==4)
        let='4';
      if(rest==5)
        let='5';
      if(rest==6)
        let='6';
      if(rest==7)
        let='7';
      if(rest==8)
        let='8';
      if(rest==9)
        let='9';
      if(rest==10)
        let='A';
      if(rest==11)
        let='B';
      if(rest==12)
        let='C';
      if(rest==13)
        let='D';
      if(rest==14)
        let='E';
      if(rest==15)
        let='F';
      hex[i]=let;
      aux=aux/16;
  }
  printf("\nEl numero en hexadecimal es: ");
  for (i=6;i>=0;i--) {
    printf("%c ",hex[i]);
  }
  return 0;
}

Código de TheZen:

Código:
/* Ejercicio 102: Escribir un programa que solicite una cantidad
    entera en formato decimal y la convierta a binario y hexadecimal
   Estado: Terminado
*/

#include <stdio.h>

void binario(int num);
void hex(int num);

main()
{
    int num;
    printf("Escribe un numero decimal: ");
    scanf("%d",&num);
    binario(num);
    printf("\n");
    hex(num);
    getchar();
}

void binario(int num)
{
    int bin[32];
    int x=0;
   
    printf("[+] Numero en binario: ");
    while( num!=0 )
    {
        bin[x] = num % 2;
        num /= 2;
        x++;
    }
    x--;
    for( ; x>=0 ; x-- )
    {
        if( (bin[x]==1)||(bin[x]==0) ) printf("%d",bin[x]);
    }
}   

void hex(int num)
{
    int hex[32];
    int x=0;
   
    printf("[+] Numero en hexadecimal: ");
    while( num>0 )
    {
        hex[x] = num % 16;
        num /= 16;
        x++;
    }
    x--;
    for( ; x>=0 ; x-- )
    {
        if(hex[x]==10) printf("A");
        else if(hex[x]==11) printf("B");
        else if(hex[x]==12) printf("C");
        else if(hex[x]==13) printf("D");
        else if(hex[x]==14) printf("E");
        else if(hex[x]==15) printf("F");
        else printf("%d",bin[x]);
    }
« Última modificación: 7 Agosto 2005, 21:53 pm por Cobac » En línea

PIV 2533 @ 2720Mhz | 512MB DRR333 @ 358 | 160 Gb + 40 Gb Seagate Barracuda

En la Edad Media la Iglesia robaba con los diezmos. En el siglo XXI la SGAE roba con sus cánones.
Cobac
Ex-Staff
*
Desconectado Desconectado

Mensajes: 5.465


Still In Development


Ver Perfil
Soluciones ejercicios C 103
« Respuesta #4 en: 7 Julio 2004, 03:52 am »

Soluciones al ejercicio 103

Código de Cobac:

Código:
#include <stdio.h>
#include <math.h>

main()
{
float raiz=0, sol1=0, sol2=0, A=0, B=0, C=0;

    printf("Siendo Ax^2+Bx+C=0\n");
    printf("Escribe los valores de A, B y C separados por un espacio:\n");
    scanf("%f %f %f", &A, &B, &C);
   
    if(A == 0)
    {
        sol1= (-C)/B;
       
        printf("El valor de X es %.2f\n", sol1);
    }
    else if(B == 0)
    {
        raiz = (-C)/A;
       
        if(raiz < 0)
                printf("ERROR, raiz negativa");
        else
        {       
                raiz = sqrt(raiz);
                printf("Los valores de X son %.2f y %.2f\n\n", raiz, -raiz);
        }
    }
    else if(C == 0)
    {
        sol1 = (-B)/A;
        printf("Los valores de X son 0 y %.2f\n\n", sol1);
    }
    else
    {
        raiz = pow(B,2)-4*A*C;
       
        if(raiz < 0)
                printf("ERROR, raiz negativa");
               
        else
        {
        raiz = sqrt(raiz);
   
        sol1 = (-B+raiz)/(2*A);
   
        sol2 = (-B-raiz)/(2*A);
   
        printf("Los valores son:\nx=%.2f y x=%.2f", sol1, sol2);
        }
    }

getchar();
getchar();
}

Código de TheZen:

Código:
/*
   Ejercicio 103: Escribir un programa que solicite tres números reales A, B y C
   y calcule Ax2+Bx+C=0
   Estado: Terminado
*/


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

main()
{
    float A,B,C;
    float D, raiz, B2;
    float x1, x2;
   
    printf(" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ \n");
    printf(" ~  Programa que calcula la ecuacion:   ~ \n");
    printf(" ~            Ax2+Bx+C=0                ~ \n");
    printf(" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ \n\n");
   
    printf(" - Escribe A: ");
    scanf("%f",&A);
    printf(" - Escribe B: ");
    scanf("%f",&B);
    printf(" - Escribe C: ");
    scanf("%f",&C);
   
    B = 0 - B;
    B2 = B*B;
    raiz = B2 - 4 * A * C;
    if( raiz < 0 )
    {
        printf("[!] No tiene solucion porque no se puede hacer la raiz cuadrada de un numro negativo.\n");
        exit( 1 );
    }   
    raiz = sqrt( raiz );
    D = 2*A;
    x1 = (B + raiz) / D;
    x2 = (B - raiz) / D;

    printf(" +------------------+ \n");
    printf("   x1 = %f            \n",x1);
    printf("   x2 = %f            \n",x2);
    printf(" +------------------+ \n");
   
    getchar();
}

Código de kasswed:

Código:
#include <stdio.h>
#include <math.h>

main()
{
      float A, B, C, res1,res2, raiz1, raiz2;
      printf("Introduce A: ");
      scanf("%f", &A);
      fflush(stdin);
      printf("\nIntroduce B: ");
      scanf("%f", &B);
      fflush(stdin);
      printf("\nIntroduce C: ");
      scanf("%f", &C);
      raiz1 = pow(B,2)-(4*A*C);
            if ( raiz1 < 0){
               printf("\nLa raiz es negativa, el programa no puede continuar.");
               getchar();
               getchar();     
               }
            else {
               raiz2 = sqrt(pow(B,2)-(4*A*C));
               res1 = (0-B + raiz2) / (2*A);
               printf("\nx = %f", res1);
               res2 = (0-B - raiz2) / (2*A);
               printf("\nx = %f", res2);
             getchar();
             getchar();
               }
}
« Última modificación: 18 Diciembre 2005, 17:48 pm por Cobac » En línea

PIV 2533 @ 2720Mhz | 512MB DRR333 @ 358 | 160 Gb + 40 Gb Seagate Barracuda

En la Edad Media la Iglesia robaba con los diezmos. En el siglo XXI la SGAE roba con sus cánones.
Cobac
Ex-Staff
*
Desconectado Desconectado

Mensajes: 5.465


Still In Development


Ver Perfil
Soluciones ejercicios C 104
« Respuesta #5 en: 7 Julio 2004, 03:54 am »

Soluciones al ejercicio 104

Código de Cobac:

Código:
#include <stdio.h>

main()
{
int ano=0, rest=0;

    printf("Introduce el año: ");
    scanf("%d", &ano);
   
    if(ano < 0)
        printf("Años negativos no\n");
       
    else
    {
        rest = ano%4;
       
        if(ano%100 == 0 && ano%400 != 0)
                printf("El año %d no es bisiesto\n", ano);
               
        else if(rest == 0 && ano%100 != 0 || (ano%400 == 0 && ano%100 == 0))
                printf("El año %d es bisiesto!!\n", ano);
       
        else
                printf("El año %d no es bisiesto\n", ano);
    }
   
getchar();
getchar();
}


Código de kasswed:

Código:
#include <stdio.h>

main()
{
      int ano;
      printf("Introduce un año: ");
      scanf("%i", &ano);
      fflush(stdin);
      if ( ( ano % 4 == 0) && (ano % 100 != 0) || ano % 400 == 0){
           printf("\nEl año %i es bisiesto.", ano);
           }
      else {
           printf("\nEl año %i no es bisiesto", ano);
           }         
      getchar();
      getchar();
}
« Última modificación: 17 Diciembre 2005, 00:27 am por Cobac » En línea

PIV 2533 @ 2720Mhz | 512MB DRR333 @ 358 | 160 Gb + 40 Gb Seagate Barracuda

En la Edad Media la Iglesia robaba con los diezmos. En el siglo XXI la SGAE roba con sus cánones.
Cobac
Ex-Staff
*
Desconectado Desconectado

Mensajes: 5.465


Still In Development


Ver Perfil
Soluciones ejercicios C 105
« Respuesta #6 en: 7 Julio 2004, 03:55 am »

Soluciones al ejercicio 105

Código de Cobac:

Código:
#include <stdio.h>

#define CANTIDAD 100

main()
{

int x=0, y=0, num=0, rest=0, t=0, prim[100], cont=0;

    for(x=0; x < CANTIDAD; x++)
    {
        for(y=1; y <= x; y++)
        {
                rest = num%y;
               
                if(num != y && y != 1 && rest != 0)
                        cont++;
        }
       
        if(cont > num-3)
        {
                prim[t] = num;
                t++;
        }
        num++;
        cont=0;
    }
   
    for(x=0; x < t; x++)
        printf("%d ", prim[x]);
   
getchar();
getchar();
}
En línea

PIV 2533 @ 2720Mhz | 512MB DRR333 @ 358 | 160 Gb + 40 Gb Seagate Barracuda

En la Edad Media la Iglesia robaba con los diezmos. En el siglo XXI la SGAE roba con sus cánones.
Cobac
Ex-Staff
*
Desconectado Desconectado

Mensajes: 5.465


Still In Development


Ver Perfil
Soluciones ejercicios C 106
« Respuesta #7 en: 7 Julio 2004, 03:58 am »

Soluciones al ejercicio 106

Código de neohex:

Código:
#include <stdio.h>

int main()
{
int i,num,resul;
printf("[+] Introduce un numero del 0 al 9: ");
scanf("%d", &num);
for(i=1;i<=10;i++){
    resul = num*i;
printf("%d x %d = %d\n",num,i,resul);
}
return 0;
}

Código de Mr.Potato:

Código:
#include <stdio.h>

int main() {
int tabla,i;

printf("introduce un numero del 1 al 9:\n");
scanf("%d",&tabla);
if (tabla < 1 || tabla > 9) {
printf("El numero tiene que ser mayor de 1 y menor que 9\n");
}
else {
for(i=1;i<=10;i++) {
printf("%d x %d = %d\n",tabla,i,tabla*i);
}
}
return 0;
}

Código de Cobac:

Código:
#include <stdio.h>

main()
{
int num=0, x=0;

    printf("Introduce un numero entre 1 y 9: ");
    scanf("%d", &num);
   
    if(num < 1 || num > 9)
        printf("Aprende a leer/escribir");
       
    else
    {
        for(x=1; x <= 10; x++)
        {
                printf("%d x %d = %d\n", num, x, num*x);
        }
    }
   
    getchar();
    getchar();
}


Código de 133_mHz_:

Código:
/* Escribir un programa que pregunte un número entero entre uno y 9 y genere la tabla de multiplicar de ese número */

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

int main()
{

    int a, b, c;
   
    printf("Introduzca un numero (1-9): ");
    scanf("%i", &a);
   
    if(a>9)
    {
        printf("El numero introducido es: %i ", a);
        printf("introduzca un numero menor.\n\n");
    }
       
    else
    {   
        for(b=1;b<11;b++)
        {
                c=a*b;
                printf("%i x %i = %i\n", a, b, c);
        }
    }
    system("pause");
                   
return 0;
}


Código de kasswed:

Código:
#include <stdio.h>

main()
{
      int num, x, res;
      printf("Introduce un numero entre 1 y 9: ");
      scanf("%i", &num);
      if (num > 9 || num < 1){
              printf("\nEl numero introducido es mayor de 9 o menor que uno. El programa no puede continuar.");
              }
      else {
      for (x=1; x<=10; x++){
          printf("\n%i x %i = %i\n", num, x, res = num * x);
          }
          }
      getchar();
      getchar();
}
« Última modificación: 17 Diciembre 2005, 11:14 am por Cobac » En línea

PIV 2533 @ 2720Mhz | 512MB DRR333 @ 358 | 160 Gb + 40 Gb Seagate Barracuda

En la Edad Media la Iglesia robaba con los diezmos. En el siglo XXI la SGAE roba con sus cánones.
Cobac
Ex-Staff
*
Desconectado Desconectado

Mensajes: 5.465


Still In Development


Ver Perfil
Soluciones ejercicios C 124
« Respuesta #8 en: 7 Julio 2004, 03:59 am »

Soluciones al ejercicio 124

Código de Cobac:

Código:
#include <stdio.h>

main()
{
float producto=0, entregado=0;
int entregar=0, rest=0, x=0;
int monedas[]={50000,20000,10000,5000,2000,1000,500,200,100,50,20,10,5,2,1};
int tipomon[]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};

    printf("Precio producto\n");
    scanf("%f", &producto);
   
    printf("Total entregado\n");
    scanf("%f", &entregado);
   
    entregado = entregado*100;
    producto = producto*100;
   
    if(entregado < producto)
    {
        printf("Diles que te paguen!!!");
    }
   
    entregar = entregado - producto;
   
    rest = entregar;
   
    for(x=0; rest > 0; x++)
    {
   
        while(rest >= monedas[x])
        {
                tipomon[x] = tipomon[x]+1;
                rest = rest - monedas[x];       
        }
    }
   
    for(x=0; x < 15; x++)
    {
        if(monedas[x] >= 100 && tipomon[x] != 0)
        {               
                if(monedas[x] >= 100 && monedas[x] <= 200)
                {
                                printf("Entregar %i monedas de %i euros\n", tipomon[x], monedas[x]/100);
                }
                else
                {
                                printf("Entregar %i Billetes de %i euros\n", tipomon[x], monedas[x]/100);
                }
        }
        else if(tipomon[x] != 0)
        {
                printf("Entregar %i monedas de %i centimos\n", tipomon[x], monedas[x]);
        }
    }
       
getchar();
getchar();
}
En línea

PIV 2533 @ 2720Mhz | 512MB DRR333 @ 358 | 160 Gb + 40 Gb Seagate Barracuda

En la Edad Media la Iglesia robaba con los diezmos. En el siglo XXI la SGAE roba con sus cánones.
Cobac
Ex-Staff
*
Desconectado Desconectado

Mensajes: 5.465


Still In Development


Ver Perfil
Soluciones ejercicios C 107
« Respuesta #9 en: 7 Julio 2004, 04:00 am »

Soluciones al ejercicio 107

Código de Cobac:

Código:
#include <stdio.h>

main()
{
int cant=0, num[80], media=0, x=0, y=0;

    printf("Dime la cantidad de numeros que quieres insertar: ");
    scanf("%d", &cant);
   
    if(cant <= 0)
        printf("Sin comentarios....");
       
    else
    {
        //rellenamos el array con números
       
        for(x=0; x < cant; x++)
        {
                printf("\nInserta el numero %d: ", x+1);
                scanf("%d", &num[x]);
        }
       
        for(x=0; x < cant; x++)
        {
                for(y=0; y < cant; y++)
                {
               
                /* Si ponemos > los ordena de mayor a menor
                   Si ponemos < los ordena de menor a mayor */
                   
                       if(num[x] < num[y])
                       {
                                 media = num[y];
                                 num[y] = num[x];
                                 num[x] = media;
                       }
                }
        }
       
        for(x=0; x < cant; x++)
                printf("\n%d ", num[x]);
    }
   
getchar();
getchar();
}
En línea

PIV 2533 @ 2720Mhz | 512MB DRR333 @ 358 | 160 Gb + 40 Gb Seagate Barracuda

En la Edad Media la Iglesia robaba con los diezmos. En el siglo XXI la SGAE roba con sus cánones.
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ejercicios Recursivos en Java y sus Soluciones « 1 2 3 4 5 »
Ejercicios
:ohk<any> 49 423,329 Último mensaje 30 Diciembre 2021, 03:22 am
por jaker250per
ejercicios + soluciones en java « 1 2 3 »
Java
bengy 25 23,680 Último mensaje 14 Septiembre 2011, 19:01 pm
por bengy
¿No se ve la TDT o se pixela? Posibles soluciones
Noticias
wolfbcn 0 1,514 Último mensaje 15 Noviembre 2017, 21:33 pm
por wolfbcn
Soluciones alternativas - Ejercicio en C++
Programación C/C++
csp 2 3,110 Último mensaje 5 Abril 2020, 06:46 am
por @XSStringManolo
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines