Autor
|
Tema: Soluciones ejercicios C (Leído 51,949 veces)
|
Cobac
Ex-Staff
Desconectado
Mensajes: 5.465
Still In Development
|
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: 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 ) 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
Mensajes: 5.465
Still In Development
|
Soluciones al ejercicio 100codigo de Cokeing: /***************************************************/ /****************************** 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: #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 #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
Mensajes: 5.465
Still In Development
|
Soluciones al ejercicio 101Código de SCYUK: #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: #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: /***************************************************/ /****************************** 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
Mensajes: 5.465
Still In Development
|
Soluciones al ejercicio 102Código de Cobac: #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: #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: /* 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
Mensajes: 5.465
Still In Development
|
Soluciones al ejercicio 103Código de Cobac: #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: /* 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: #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
Mensajes: 5.465
Still In Development
|
Soluciones al ejercicio 104Código de Cobac: #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: #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
Mensajes: 5.465
Still In Development
|
Soluciones al ejercicio 105Código de Cobac: #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
Mensajes: 5.465
Still In Development
|
Soluciones al ejercicio 106Código de neohex: #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: #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: #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_: /* 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: #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
Mensajes: 5.465
Still In Development
|
Soluciones al ejercicio 124Código de Cobac: #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
Mensajes: 5.465
Still In Development
|
Soluciones al ejercicio 107Código de Cobac: #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.
|
|
|
|
|