Está en la página 1de 52

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

h> int divide(int x); void main (void){ int a=0, b=0; printf("Dame el numero que quieres \n",a); scanf("%d",&a); getchar(); printf("La suma de los divisores de %d son %d: \n",a,divide(a)); printf("Dame el numero que quieres \n",b); scanf("%d",&b); getchar(); fflush(stdin); printf("La suma de los divisores de %d son %d: \n",b,divide(b)); if (divide(a)== b && divide(b)==a){ printf("Los numeros %d y %d son amigos \n", a,b);} else (printf("Los numeros %d y %d no son amigos \n", a,b)); } int divide (int x){ int i,suma=0; for(i=1;i<x;i++){ if(x%i==0){ suma=suma+i; } } return suma;

} Est terminado y correcto.

Ejercicio 62 #include <stdio.h> void explicar_programa(); void obtener_valores(float *res,float *vol); float calcular(float res,float vol); void imprimir_respuesta(float i);

void main(void){ float i,res,vol; explicar_programa(); obtener_valores(&res,&vol); i=calcular(res,vol); imprimir_respuesta(i); }

void explicar_programa(){ printf("El programa calculara el valor de la intensidad"); printf("que pasa a traves de una resistencia dada"); printf(",cuando se le aplica un voltaje determinado.\n\n");} void obtener_valores(float *res,float*vol){ printf("Dame el valor de la resistencia \n"); scanf("%f",res); getchar(); printf("Dame el valor del voltaje \n"); scanf("%f",vol); getchar();} float calcular(float res, float vol){ return vol/res;} void imprimir_respuesta(float i){ printf("La intensidad es %f\n",i); } Terminado y correcto.

ejercicio 1

#include <stdio.h> #include <math.h> void main(void){ int hora_1, minutos_1, segundos_1; int hora_2, minutos_2, segundos_2; printf("Dame la primera hora en horas, minutos y segundos"); scanf("%d",&hora_1); scanf("%d",&minutos_1); scanf("%d",&segundos_1); printf("Dame la primera hora en horas, minutos y segundos"); scanf("%d",&hora_2); scanf("%d",&minutos_2); scanf("%d",&segundos_2); segundos_1=segundos_1+hora_1 * 60* 60 +minutos_1*60; segundos_2=segundos_2+hora_2 * 60* 60 +minutos_2*60; if (segundos_1>segundos_2){ printf("La diferencia de segundos es %d:\n",segundos_1-segundos_2); } else printf("La diferencia de segundos es %d:\n",segundos_2-segundos_1); }

ejercicio 3 #include<stdio.h> #include<math.h> void main(void){ int n,i; double resultado; resultado=0; printf("dame un numero n:\n"); scanf("%d",&n); for(i=1;i<=n;i++);{ resultado=resultado+(double) (n*n)/ (double) i; } printf("el resultado es %f", resultado); } esos doubles porque? porque cambia el tipo de valor, ya que multiplicas 2 int, entonces es double y lo tienes que indicar lo captas??? si, te capto, gracias! esk antes lo he exo mas o menos igual y no me daba el resultado y lo nico q me faltaba era eso!

ejercicio 4 #include<stdio.h> void main(void){ int n, i; double resultado; resultado=0; printf("dame el numero n:\n"); scanf("%d",&n); getchar(); for(i=1;i<=n;i++){ resultado=resultado+ (double) ((n+1)*(n+1))/ (double) i; } printf(" el resultado es: %f",resultado); } resuelto!

Ejercicio 13 de mierda. #include <stdio.h> void main (void){ int i,a,suma_divisores=0; printf("Dame el numero que quieres\n"); scanf("%d",&a); getchar(); for(i=1;i<a;i++){ if(a%i==0){ suma_divisores=suma_divisores+i;} } if(suma_divisores>a){ printf("El numero %d es abundante\n\n",a);} else(printf("El numero %d no es abundante\n\n",a));

Pregunta 3: (3 ptos.) Dado el programa siguiente: #include <stdio.h> void main(void){ int i, t; char c; printf("Dame c: "); scanf("%c",&c); switch(c){ case 'a': case 'A': printf("A\n"); for(i=1;i<4;i=i+1) { printf("\t%d", i); } break; case 'b': case 'B': printf("B\n"); i=1; printf("Dame t: "); scanf("%d",&t); while(i<t) { if (i%2==0) { printf("%d es par\n",i); i=i+1; } else { printf("\t%d",i); i=i+2; } } break; default: printf("?"); } //printf("FIN DEL PROGRAMA %c\n", c); } Indica cual es el resultado que aparecera en pantalla tras la ejecucin del programa para los valores siguientes: 1. c=A, t=7. En este caso imprimira en pantalla 1 2 3 (caso A). 2. c=b, t=7. En este caso imprimira en pantalla 1 3 5(caso B) 3. c=b, t=0 4. c=a. En este caso imprimira en pantalla 1 2 3 (caso A). 8==============================================D ---- (.Y.) Hipottico caso 5. En el caso de que el programa no cumpla ningn caso, mostrara el ? del default (que va con el switch)

8) Realizar un programa que pida al usuario que vaya introduciendo caracteres por teclado, de forma que ste vaya contando el nmero de vocales, el nmero de consonantes y el nmero de otros signos introducidos hasta que el usuario teclee el carcter blanco ( ) que indicar que el usuario no desea introducir ms caracteres. Finalmente, mostrar por pantalla el nmero de vocales, el nmero de consonantes y el nmero de otros signos introducidos, as como el nmero total de caracteres tecleados por el usuario (sin contar el espacio en blanco final) include <stdio.h> void main(void){ int consonantes,vocales,otros; unsigned char caracter; consonantes=0; vocales=0; otros=0; printf("\nConsonantes, vocales, y otros signos\n\n"); do{ printf("Dime un caracter: "); scanf("%c",&caracter); getchar(); //para la lectura y el descarte de la pulsacin de //la tecla ENTER //Empleamos la tabal ASCII Extendida para resolver el //problema, consultando el entero equivalente en dicha tabla. if(((caracter>=65)&&(caracter<=90))||((caracter>=97)&& (caracter<=122))){ //Estamos en el caso de las letras de la A a la Z, o de la a //a la z. Comprobamos ahora si es o no una vocal if((caracter=='a')||(caracter=='e')||(caracter=='i')|| (caracter=='o')||(caracter=='u')) //Se trata de una vocal vocales++; } else{ if((caracter=='A')||(caracter=='E')||(caracter=='I')|| (caracter=='O')||(caracter=='U')){ //Se trata de una vocal vocales++; } else{ consonantes++; } } } else{ if((caracter==164)||(caracter==165)){ //Estamos en el caso de la o la consonantes++; } else{

otros++; } } }while(caracter!=' '); printf("\nEl numero de consonantes es: %d\n",consonantes); printf("El numero de vocales es: %d\n",vocales); printf("En numero de otros signos es: %d\n\n",otros-1)

EJERCICIO 7

MIRAR ESTE EJERCICIO

#include<stdio.h> void main(void){ int a,e,i,o,u; char caracter; a=e=i=o=u=0; do{ printf("Introduce caracteres, y cuando quieras parar pulsa espacio\n"); scanf("%c",&caracter); getchar(); switch(caracter){ case 'a':a++; break; case 'e':e++; break; case'i':i++; break; case'o':o++; break; case'u':u++; break; } } while (caracter!=' '); printf("el numero de as es: %d\n ",a); printf("el numero de es es: %d\n ",e); printf("el numero de ies es: %d\n ",i); printf("el numero de os es: %d\n ",o); printf("el numero de us es: %d\n ",u); }

EJERCICIO 11 #include<stdio.h> void main(void){ int n,i; printf("Dame un numero \n"); scanf("%d",&n); getchar(); for(i=0;i<=n;i++){ if(i%21==0) printf("El numero %d es multiplo de vientiuno\n",i); } }

EJERCICIO 12 #include<stdio.h> void main(void){ int numero,i,primo=0; printf("Dame un numero\n"); scanf("%d",&numero); getchar(); for(i=2;i<numero;i++){ if(numero%i==0){ primo=1; } } if(primo==1){ printf("el numero %d no es un numero primo\n",numero); } else { printf("el numero %d es un numero primo\n",numero); } } 4

EJERCICIO 14

#include<stdio.h> void main(void){ int factorial=1, numero,i; printf("Dame un numero:"); scanf("%d",&numero); getchar(); for(i=1;i<=numero;i++){ factorial=factorial*i; } printf("El factorial de %d sera: %d\n",numero,factorial); }

EJERCICIO 15 #include<stdio.h> void main(void){ int numero,i; double factorial; printf("Dame un numero:"); scanf("%d",&numero); getchar(); factorial=1; for(i=1;i<=numero;i++){ if(i%2!=0){ factorial=factorial*i; } } printf("El factorial de %d es %f\n",numero,factorial); } Ejercicio 64. #include <stdio.h> double factorial (int a); void main (void){ int M,N; printf("Dame el numero M\n"); scanf("%d",&M); getchar();

printf("Dame el numero N\n"); scanf("%d",&N); getchar(); printf("El resultado es: %f\n\n", factorial(M)/(factorial(N)*factorial(M-N)));} double factorial (int a){ int i; double resultado; if(a==0){ return 1.0;} resultado=1.0; for(i=1;i<=a;i++){ resultado=resultado*i;} return resultado;

} Resuelto.

Pregunta 2: (3 ptos.) Reescribir el siguiente programa en C corrigiendo los posibles errores que contenga. El programa pretende realizar el sumatorio (n+1)^2/i El programa pedir por pantalla el valor de n se detendr una vez calculado el sumatorio o cuando el mismo supere el valor de un valor mximo que tambin pediremos al inicio del programa. /* Programa que calcula un sumatorio /*

#include <stdio.h> void main(void){ int numero,i; double max, sumatorio; printf("\nCalculo de Sumatorio\n\n"); printf("Dime un numero: "); scanf("%d",&numero); getchar(); printf("Dime un valor maximo: "); scanf("%lf",&max); antes pona: scanf(%ld,&max); getchar(); sumatorio=0.0; for(i=1;i<=numero;i=i+1){ sumatorio=sumatorio+(double)(numero+1)*(numero+1)/(double)i; if (sumatorio>max) i=numero; }

printf("La suma de la serie es: %lf\n\n",sumatorio); }

Es del primer parcial del ao pasado. Creo que lo he corregido y solo haba un fallo que he visto que os marco. Est bien?

Ejercicio 1 xD. #include <stdio.h> #include <math.h> void main (void){ int h1=0,m1=0,s1=0,h2=0,m2=0,s2=0; int primer_tiempo, segundo_tiempo; printf("Dame el primer tiempo en horas,despues en minutos y luego en segundos \n"); scanf("%d",&h1); scanf("%d",&m1); scanf("%d",&s1); printf("Dame el segundo tiempo en horas, despues en minutos y luego en segundos \n"); scanf("%d",&h2); scanf("%d",&m2); scanf("%d",&s2); primer_tiempo=h1*3600+m1*60+s1; printf("El primer tiempo en segundos es %d \n",primer_tiempo); segundo_tiempo=h2*3600+m2*60+s2; printf("El segundo tiempo en segundos es %d \n",segundo_tiempo); if(primer_tiempo<segundo_tiempo) printf("La diferencia entre los dos tiempos es %d segundos \n",(segundo_tiempo)-(primer_tiempo)); else printf("La diferencia entre los dos tiempos es %d segundos \n",(primer_tiempo)-(segundo_tiempo)); }

Exmen Ana. #include <stdio.h> void main(void){ int a,b,c,R,i; printf("Dame a: "); scanf("%d",&a);

switch(a){ case 1: printf("Dame b: "); scanf("%d",&b); printf("Dame c: "); scanf("%d",&c); R=1; for(i=0; i<c; i++) R*=b; R*=R*b. Aqu lo que hace es un exponente, repite la operacin 4 veces, desde i=0, hasta i=3. Es decir, una potencia, 3^4. Ignorando lo que valga i... lo pillas? xD printf("%d\n\n",R); break;

case 2: printf("Dame b: "); scanf("%d",&b); R=1; for(i=1; i<=b; i++) R*=i;R* Significa -> R=R*i, aqui hace la multiplicacion normal, va sumando Ies y las multiplica a la R, es decir, R=1*1 -> R=1; R=R*2 -> R=2 -> R=R*3 -> R=6-> R=R*4 -> R=24 -> R=R*5.. R final = 120 printf("%d\n\n",R); break; default: printf("El valor de a es %d\n\n",a); } printf("FIN DEL PROGRAMA\n"); }

//Clculo de la media de N numeros enteros, pero solo para aquellos nmeros que //sean impares. #include<stdio.h> void main(void){

int n,i,numero,suma_impares=0,impar=0,media=0; printf("Dime para cuantos numeros quieres calcular la media\n"); scanf("%d",&n); getchar(); printf("Dame los numeros\n"); for(i=1;i<=n;i++){ printf("Dame el valor del numero %d\n",i); scanf("%d",&numero); getchar(); if(numero%2!=0){ impar++; suma_impares=suma_impares+numero; } } media=suma_impares/impar; printf("La media de %d es %d\n",suma_impares,media); }

PARCIAL AO PASADO ERRORES CORREGIDO #include <stdio.h> /* Programa que calcula potencias e imprime el resultado por pantalla */ void main(void) { int base,exponente,i; float potencia; printf("\nCalculo de la potencia \n\n"); printf("Dime el valor de la base: "); scanf("%d",&base); getchar(); // para la lectura y el descarte de la pulsacin de la tecla ENTER printf("Dime el valor del exponente: "); scanf("%d",&exponente); getchar(); // para la lectura y el descarte de la pulsacin de la tecla ENTER //Inicializamos a 1.0 el valor de potencia, ya que la //potencia de cualquier nmero elevado a 1 es 1; con //lo que el bucle no se ejecutaria ninguna vez potencia=1.0; for(i=1;i<=exponente;i++) { potencia=potencia*base;

} //La expresin %.0f nos permite imprimir el resultado //sin decimales printf("El resultado es: %.0f\n\n", potencia); }

SEGUNDO PARCIAL GRUPO D. Hacer un programa en C que haga lo que se describe a continuacin: a) Hacer una funcin en C que pida por teclado 2 datos y los devuelva al exterior de la funcin (esos dos datos se correspondern con la parte real e imaginaria de un nmero complejo). b) Hacer una funcin que muestre un nmero complejo en pantalla. El formato de visualizacin ser el siguiente: (4, -3i) c) Hacer una funcin que multiplique dos nmeros complejos y devuelva el nmero resultante al exterior de la funcin. d) Hacer una funcin que calcule el mdulo de un nmero complejo y devuelva el resultado al exterior de la funcin. e) Hacer un programa principal (main) que muestre el siguiente men hasta que el usuario introduzca la opcin 4: 1. Mostrar un nmero complejo 2. Multiplicar dos nmeros complejos 3. Mdulo de un nmero complejo 4. Salir del programa Nota: Los datos con que van a trabajar las funciones de los apartados b, c y d tienen que pedirse al usuario por teclado fuera de la definicin de dichas funciones utilizando la funcin del apartado a. Los datos que calculen las funciones de los apartados c y d tienen que mostrarse en pantalla fuera de la definicin de las funciones. Dentro de las funciones de los apartados c y d no puede haber instrucciones de tipo scanf o printf. Multiplicacin de nmeros complejos: (a, bi) (c, di) = (ac-bd, ad+bc i)

SOLUCIN: #include<stdio.h> #include<math.h> void pedir(int *real, int *imag); void mostrar(int real, int imag); void multiplicar(int a, int b, int c, int d, int *real, int *imag);

double modulo( int a, int b); void main(void){ int a, b, c, d, x, y, opcion; do{ printf("1.Mostrar un numero complejo"); printf("2. Multiplicar dos nmeros complejos"); printf("3. Mdulo de un nmero complejo"); printf("4. Salir del programa"); scanf("%d", &opcion); switch(opcion){ case 1: pedir(&a, &b); mostrar(a, b); break; case 2: pedir(&a, &b); pedir(&c, &d); multiplicar (a, b, c, d, &x, &y); mostrar(x,y); break; case 3: pedir(&a, &b); printf("El modulo del numero complejo introducido es: \n", modulo(a,b)); break; case 4: printf("Salir del programa \n\n"); break; default: printf("Opcion incorrecta"); break; } }while(opcion!=4); } void pedir(int *real, int *imag){ printf("Intruduce la parte real de numero:\n"); scanf("%d", real); printf("Intrudice la parte imaginaria del numero:\n"); scanf("%d", imag); }

void mostrar(int real, int imag){ printf("(%d, %di)", real, imag); } void multiplicar(int a, int b, int c, int d, int *real, int *imag){ *real=(a*c)-(b*d); *imag=(a*d)+(b*c); }

double modulo( int a, int b){ return sqrt(a*a+ b*b); }

26) El clculo del valor de cos(x) viene dado por la expresin: Escribir un programa que calcule el valor de cos(x). La condicin de parada ser la precisin indicada por el usuario mediante el nmero de trminos de la serie que se desean calcular. El otro valor que ser facilitado por el usuario ser el valor de x, variable de tipo real. En el ejemplo que se muestra tendramos 4 trminos. El resultado que se obtiene est en radianes. #include <stdio.h> #include <math.h> void main (void){ int i,n,factorial,x,s; float resultado=0; printf(PROGRAMA PARA CALCULAR EL COSENO POR EL POLINOMIO DE TAYLOR\n\n); printf(Dame la precision que quieres para la ecuacion \n); scanf(%d,&n); getchar(); printf(Dame la x en radianes \n); scanf(%d,&x); getchar();

for(i=1;i<=n;i++){ factorial=i*i; if(factorial%2==0){ for(s=1;s<=n;(-1)*s) resultado=s*(pow(x,factorial))/factorial); } } resultado=1-resultado; printf(el resultado es %f \n,resultado); }

EL EJERCICIO DE ANA Hacer un programa en C que haga lo que se describe a continuacin: a) Hacer una funcin en C que pida por teclado 2 datos y los devuelva al exterior de la funcin (esos dos datos se correspondern con la parte real e imaginaria de un nmero complejo). b) Hacer una funcin que muestre un nmero complejo en pantalla. El formato de visualizacin ser el siguiente: (4, -3i) c) Hacer una funcin que multiplique dos nmeros complejos y devuelva el nmero resultante al exterior de la funcin. d) Hacer una funcin que calcule el mdulo de un nmero complejo y devuelva el resultado al exterior de la funcin. e) Hacer un programa principal (main) que muestre el siguiente men hasta que el usuario introduzca la opcin 4: 1. Mostrar un nmero complejo 2. Multiplicar dos nmeros complejos 3. Mdulo de un nmero complejo 4. Salir del programa Nota: Los datos con que van a trabajar las funciones de los apartados b, c y d tienen que pedirse al usuario por teclado fuera de la definicin de dichas funciones utilizando la funcin del apartado a. Los datos que calculen las funciones de los apartados c y d tienen que mostrarse en pantalla fuera de la definicin de las funciones. Dentro de las funciones de los apartados c y d no puede haber instrucciones de tipo scanf o printf. Multiplicacin de nmeros complejos: (a, bi) (c, di) = (ac-bd, ad+bc i)

#include<stdio.h> #include<math.h> void lectura(int *a, int *b); void mostrar(int r, int i); float modulo (int a, int b); void main (void){ int n,*r,*i,R1,I1,R2,I2; do{ printf(Elige tu opcion coleguilla!!\n); printf(1. Mostrar un nmero complejo\n); printf(2. Multiplicar dos nmeros complejos\n) printf(3. Mdulo de un nmero complejo\n); printf(4. Salir del programa\n); printf(Seguro coleguilla!!\n); scanf(%d,&n)

switch(n){ case 1: lectura(*r, *i); mostrar(r,i); break; case 2: lectura(*r,*i); R1=*r; I1=*i; lectura( *r, *i); R2=*r; I2=*i; r= ((R1*R2)-(I1*I2)); i= ((R1*I2)+(R2*I1)); mostrar(r,i); break; case 3: lectura(*r,*i); modulo (a,b); printf(El modulo es %f \n ,modulo()); case 4: printf(FIN DEL PROGRAMA PEDAZO DE MIERDA CARA FOLLO\n); } }

} void lectura(int *r, int *i){ printf(Dame la parte real de un numero complejo\n); scanf(%d,r); getchar(); printf(Dame la parte imaginaria de un numero complejo\n); scanf(%d,i); getchar(); } void mostrar(int r, int i){ printf(El numero es (%d, %di)\n,r,i); } float modulo(int a, int b){ float modulo; modulo=sqrt(a*a + b*b); return modulo; }

VERSION JAVY NO VALIDA PARA NADA jejejeje

#include<stdio.h> #include<math.h> void lectura(int *r, int *i); void mostrar(int r, int i); el fallo est aqu, nosotros esto lo pusimos por referencia. void multiplicar(int a,int b,int c,int d,int*r,int*i); float modulo (int a, int b); void main (void){ int a,b,n,i,r,R1,I1,R2,I2; do{ printf("Elige tu opcion coleguilla!!\n"); printf("1. Mostrar un nmero complejo\n"); printf("2. Multiplicar dos nmeros complejos\n"); printf("3. Mdulo de un nmero complejo\n"); printf("4. Salir del programa\n"); printf("Seguro coleguilla!!\n"); scanf("%d",&n); switch(n){ case 1: lectura(&r,&i); mostrar(r,i); break; case 2: lectura(&r,&i); R1=r; I1=i; lectura(&a, &b); R2=a; I2=b; a= ((R1*R2)-(I1*I2)); b= ((R1*I2)+(R2*I1)); mostrar(a,b); esto tambin lo he corregido, he cambiado las variables r e i, en uno de los 2, porque sino no hacia ninguna multiplicacin! case 3: lectura(&r,&i); modulo(a,b); printf("El modulo es %f \n ",modulo(a,b)); break; case 4: printf("FIN DEL PROGRAMA PEDAZO DE MIERDA CARA FOLLO\n"); break;} } while(n!=4);

} void lectura(int *r, int *i){ printf("Dame la parte real de un numero complejo\n"); scanf("%d",r); getchar(); printf("Dame la parte imaginaria de un numero complejo\n"); scanf("%d",i); getchar(); }

void mostrar(int r,int i){ printf("El numero es (%d, %di)\n",r,i); } float modulo(int a, int b){ float modulo; modulo=sqrt( (double) a*a + (double) b*b); return modulo;}

Pregunta 3: (3 puntos.) Se pide: 1. Hacer una funcin en C que dados dos nmeros enteros a1 y b1, devuelva verdadero si el b1 es mltiplo de a1, o falso en caso contrario. 2. Hacer un programa principal (main) que, haciendo uso de la funcin anterior y dados dos nmeros enteros a y b (a<=b), muestre en pantalla aquellos nmeros comprendidos entre a y b inclusive que sean mltiplos de a. Nota: Los datos con que van a trabajar la funcin tienen que pedirse al usuario por teclado fuera de la definicin de la funcin. Un nmero n es mltiplo de otro m, si n es divisible por m. #include <stdio.h> int multiplo(int a1, int b1); void main (void){ int a,b,i; printf("Dame el primer numero\n"); scanf("%d",&a); printf("Dame el segundo numero\n"); scanf("%d",&b); if(a<b){ for(i=a;i<=b;i++){ if (multiplo(a,i)==1) printf("%d\n",i);} } else{ for(i=b;i<=a;i++){ if (multiplo(b,i)==1) printf("%d\n",i); } } } int multiplo(int a1,int b1){ if (a1%b1==0){ return 1; } else{ return 0; } }

105) Dadas dos matrices 4x4 de nmeros enteros declaradas en la funcin principal, se pide realizar un programa que permita mediante opciones acceder a las distintas funciones que a continuacin se detallan: a. Escribir una funcin lectura(), que permita al usuario introducir los valores a almacenar en cualquiera de las dos matrices. b. Escribir una funcin escribir(), que permita al usuario modificar el valor de una posicin en concreto de cualquiera de las dos matrices. La matriz, la posicin a modificar y el nuevo valor sern pasados a la funcin mediante parmetros. c. Escribir una funcin imprimir(), que permita imprimir los valores almacenados en cualquiera de las dos matrices. d. Escribir una funcin borrar() que nos permita borrar todos los valores almacenados en cualquiera de las dos matrices. Nota. Esta funcin deber escribir en todas las posiciones de la matriz el valor 0. e. Escribir una funcin suma() que realice la suma de las dos matrices, almacenando el resultado en una de ellas. f. Escribir una funcin multiplica() que realice la multiplicacin de las dos matrices, almacenando el resultado en una de ellas. g. Escribir una funcin traspuesta() que obtenga la traspuesta de cualquiera de las dos matrices, almacenando el resultado en la matriz original pasada como parmetro.

#include <stdio.h> void lectura(int m[4][4]); void escribir(int m[4][4], int fila,int columna, int nuevo_valor); void imprimir(int m[4][4]); void borrar(int m[4][4]); void suma(int m[4][4],int n[4][4]); void multiplicar(int m[4][4], int n[4][4]); void traspuesta(int m[4][4]); void main(void{ int opcion, opcion_m, columna, fila, nuevo_valor; int m[4][4], n[4][4];

do{ printf("1. Introducir valores \n"); printf("2. Modificar una de las matrices \n"); printf("3. Imprimir las matrices \n"); printf("4. Borrar todos los valores de una matriz \n"); printf("5. Suma de matrices \n");

printf("6. Multiplicacion de matrices \n"); printf("7.Traspuesta de una matriz \n"); printf("8. Fin del programa \n"); scanf("%d", &opcion); getchar(); switch(opcion){ case 1: printf("Elija la matriz que quieres leer\n: "); printf("1. Matriz primera \n"); printf("2. Matriz segunda \n"); scanf("%d",&opcion_m); getchar(); if(opcion_m==1){ lectura(m)} else lectura(m) break; case 2: printf("Elija la matriz que quieres modificar: \n"); printf("1. Matriz primera \n"); printf("2. Matriz segunda \n"); scanf("%d",&opcion_m); getchar(); printf("Introduzca la fila que quieres cambiar: \n"); scanf("%d",&fila); printf("Introduza la columna que quieres cambiar: \n"); scanf("%d",&columna); printf("Introduzca el nuevo valor: \n"); scanf("%d",&nuevo valor); if(opcion_m==1) escribir(m); else escribir(n); break; case 3: printf("Introducir la matriz que quieres imprimir: \n"); printf("1. La matriz primera\n"); printf("2. La matriz segunda\n"); scanf("%d",&opcion_m); getchar(); if(opcion_m==1); imprimir(m); else imprirmir(n); break; case 4: printf("Introducir la matriz que quieres borrar: \n"); printf("1. La matriz primera\n"); printf("2. La matriz segunda\n"); scanf("%d",&opcion_m); getchar(); if(opcion_m==1); borrar(m); else borrar(n);

break; case 5: suma(m,n); imprimir(m); break; case 6: multiplicar(m,n); imprimir(m); break; case 7: printf("Introducir la matriz que quieres usar: \n"); printf("1. La matriz primera\n"); printf("2. La matriz segunda\n"); scanf("%d",&opcion_m); getchar(); if(opcion_m==1){ traspuesta(m); imprimir(m)} else {traspuesta(n); imprimir(n)} break; } } while(opcion!=8);

} void lectura(int m[4][4]){ int i,j; for(i=0;i<4;i++){ for(j=0;j<4;j++){ printf("Dame el valor de la pocicion (%,%): \n",i,j); scanf("%d",&m[i][j]); getchar();} }}

void escribir(int m[4][4], int v,int f, int c){ m[fila-1][columna-1]=nuevo_valor; }

void imprimir(int m[4][4]){ int i,j; for(i=0;i<4;i++){ for(j=0;j<4;j++){ printf("%d\t",matriz[i][j]); printf("\n");} }}

void borrar(int m[4][4]){ int i,j; for(i=0;i<4;i++){ for(j=0;j<4;j++){ matriz[i][j]=0; }} } void suma(int m[4][4],int n[4][4]){ int i,j; for(i=0;i<4;i++){ for(j=o;j<4;j++){ m[i][j]=m[i][j]+n[i][j]; } }}

void multiplicar(int m[4][4], int n[4][4]){

int i,j,matriz_auxiliar[4][4],suma,k; for(k=0;k<4;k++){ for(i=0;i<4;i++){ suma=0; for(j=0;j<4;j++) suma=suma+matriz1[k][j]*matriz2[j][i]; matriz_auxiliar[k][i]=suma; } } for(i=0;i<4;i++){ for(j=0;j<4;j++) matriz1[i][j]=matriz_auxiliar[i][j]; } }

void traspuesta (int matriz[][4]){ int i,j,traspuesta[4][4];

for(i=0;i<4;i++) for(j=0;j<4;j++) traspuesta[i][j]=matriz[j][i]; for(i=0;i<4;i++) for(j=0;j<4;j++) matriz[i][j]=traspuesta[i][j]; } EJERCICIO QUE HICIMOS EL ULTIMO DIA EN CLASE CON COMPLEJOS!!! //leer, imprimir, sumar, restar, multiplicar y puro// #include<stdio.h> void leer(int*a, int*b); void imprimir(int a,int b); void sumar ( int a, int b, int c, int d, int*r, int*i); void restar ( int a, int b, int c, int d, int*r,int*i); void multiplicar(int a, int b, int c,int d, int*r, int*i); int puro(int a, int b); void main(void){ int a,b,c,d,opcion,r1,i1,r2,i2,r,i,p; do{ printf("\n1. Leer complejo numero 1.\n"); printf("\n2. Leer complejo numero 2.\n"); printf("\n3. Imprimir complejo numero 1.\n"); printf("\n4. Imprimir complejo numero 2.\n"); printf("\n5. Sumar compejos.\n"); printf("\n6. Restar compejos.\n"); printf("\n7. Multiplicar compejos.\n"); printf("\n8. Decir si complejo 1 es puro.\n"); printf("\n9. Decir si complejo 2 es puro.\n"); printf("\n10. Salir del programa.\n"); printf("\nIntroduzca una opcin:\n"); scanf("%d", &opcion); getchar (); switch(opcion){ case 1: leer(&a,&b); break; case 2: leer(&c,&d); break;

case 3: imprimir(a,b); break; case 4: imprimir(c,d); break; case 5: sumar(a,b,c,d,&r,&i); printf("El resultado de la suma es (%d)+(%d)i\n",r,i); break; case 6: restar(a,b,c,d,&r,&i); printf("El resultado de la resta es (%d)+(%d)i\n",r,i); break; case 7: multiplicar(a,b,c,d,&r,&i); printf("El resultado de la multiplicacion es (%d)+(%d)i\n",r,i); break; case 8: p=puro(a,b); if (p==1){ printf("El primer complejo, es un complejo puro\n"); } else printf("El primer complejo, no es un complejo puro\n"); break; case 9: p=puro(c,d); if (p==1){ printf("El segundo complejo, es un complejo puro\n"); } else printf("El segundo complejo, no es un complejo puro\n"); break; }

} while(opcion!=10); } void leer(int*a, int*b){ printf("dame la parte real del complejo\n"); scanf("%d",a); getchar(); printf("dame la parte imaginaria\n"); scanf("%d",b); getchar(); }

void imprimir(int a,int b){ printf("el complejo es (%d)+(%di)n",a,b); } void sumar ( int a, int b, int c, int d, int*r, int*i){ *r=a+c; *i=b+d; } void restar ( int a, int b, int c, int d, int*r,int*i){ *r=a-c; *i=b-d; } void multiplicar(int a, int b, int c,int d, int*r, int*i){ *r=a*c-b*d; *i=a*d+b*c; } int puro(int a, int b){ if (b==0) return 1; if (a==0) return 0; }

//62) Crear un programa que calcule el valor de la intensidad que pasa a travs de una resistencia dada, //cuando se le aplica un voltaje determinado. El programa deber estar dividido en las siguientes funciones: //a. explicar_programa(). Esta funcin mostrar una introduccin del programa por la pantalla. //b. obtener_valores(). Esta funcin pedir los valores para la resistencia y voltaje, los cuales se pasarn por referencia //al programa principal. //c. calcular(). Esta funcin efectuar el clculo de la intensidad a partir de la resistencia y el voltaje aplicado. //d. imprimir_respuesta(). Esta funcin se encargar de mostrar un mensaje con los resultados. //Nota. La declaracin de variables se realizar en el programa principal, y las funciones usarn dichas //variables por valor o por referencia segn sea necesario. #include<stdio.h> void obtener_valores(float*vol,float*res); double calcular(float vol, float res); void imprimir_respuesta(float inten); void main(void){ float voltaje,resistencia;

double intensidad; obtener_valores(&voltaje,&resistencia); calcular(voltaje,resistencia); intensidad=calcular(voltaje,resistencia); imprimir_respuesta(intensidad);

} void obtener_valores(float*vol,float*res){ printf("Dame el valor del voltaje:\n"); scanf("%f",vol); getchar(); printf("Dame el valor de la resistencia:\n"); scanf("%f",res); getchar(); } double calcular(float vol, float res){ double intensidad; intensidad=vol/res; return intensidad; } void imprimir_respuesta(float inten){ printf("La intensidad en Amperios es %lf\n",inten); }

//65) Realizar un programa en C que calcule el valor decimal de un nmero escrito //en octal o en binario. Para ello, el programa mostrar por pantalla el siguiente //mensaje: Pulse 2 si el nmero a convertir es binario o bien 8 si es octal. //Posteriormente, solicitar el nmero de dgitos que se van a introducir, //y por ltimo solicitar dichos dgitos comenzando por el ms significativo (el de mayor peso). Finalmente, mostrar por pantalla el valor decimal del nmero introducido y volver a mostrar el men inicial. #include<stdio.h> #include<math.h> void binario_decimal(void); void octal_decimal(void); void main(void){ int opcion;

do{ printf("Pulse 2 si el nmero a convertir es binario o bien 8 si es octal\n"); printf("2. Binario a decimal\n"); printf("8. Octal a decimal\n"); printf("1. Salir del programa\n"); printf("Opcion: \n"); scanf("%d",&opcion); getchar(); switch(opcion){ case 2: binario_decimal(); break; case 8: octal_decimal(); break; } } while(opcion!=1); }

void binario_decimal(void){ int numeros, numero,i; int resultado=0; printf("Introduzca el numero de digitos que va a tener el numero\n"); scanf("%d",&numeros); getchar(); for(i=1;i<=numeros;i++){ printf("Dame el %d numero",numeros-i); scanf("%d",&numero); getchar(); resultado=resultado+numero*pow((double)2,(double)(numeros-i)); } printf("El resultado es %d \n",resultado); }

void octal_decimal(void){ int numeros, numero,i; int resultado=0; printf("Introduzca el numero de digitos que va a tener el numero\n"); scanf("%d",&numeros); getchar(); for(i=1;i<=numeros;i++){ printf("Dame el %d numero",numeros-i); scanf("%d",&numero); getchar(); resultado=resultado+numero*pow((double)8,(double)(numeros-i)); }

printf("El resultado es %d \n",resultado); }

68//Realizar un programa que tenga: //a. Una funcin para convertir grados Fahrenheit a grados Celsius. //b. Una funcin para convertir grados Celsius a grados Fahrenheit. //Las dos opciones debern presentarse al usuario mediante un men por pantalla, al que se //aadir una opcin ms para salir del mismo. //Nota. La conversin de grados Celsius a grados Fahrenheit se realiza de la siguiente manera //T ( F) = 1,8 x T(C) + 32

#include <stdio.h> float celsius ( float f); float fahrenheit (float c);

void main(void){ int opcion; float g; do{ printf("1. Convertir grados Fahrenheit a grados Celsius\n "); printf("2. convertir grados Celsius a grados Fahrenheit\n "); printf("3. Salir del programa\n"); printf("Elige opcion: \n"); scanf("%d",&opcion); getchar();

switch(opcion){ case 1: printf("Dame los grados en Fahrenheit:\n"); scanf("%f",&g); printf("Son %f grados celsius\n",celsius(g)); break; case 2: printf("Dame los grados en celsius:\n");

scanf("%f",&g); printf("Son %f grados Fahrenheit\n",fahrenheit(g)); break; } } while(opcion!=3); }

float celsius ( float f){ return (f-32)/1.8; }

float fahrenheit(float c){ return 1.8*(c+32); }

EJERCICIO QUE HICIMOS EL ULTIMO DIA EN CLASE CON COMPLEJOS!!! //leer, imprimir, sumar, restar, multiplicar y puro// #include <stdio.h> void lectura(int *r,int *i); void imprimir(int r, int i); void sumar(int r1,int i1,int r2, int i2,int*r,int*i); void restar(int r1, int i1, int r2, int i2, int*r, int*i); void multiplicar(int r1, int i1, int r2, int i2, int*r, int*i); int puro(int r,int b); void main(void){ int r1,i1,r2,i2,opcion,p,r,i; do{ printf("1.Leer el primer complejo\n"); printf("2.Leer el segundo complejo\n"); printf("3.Muestra el primer complejo\n"); printf("4.Muestra el segundo complejo\n"); printf("5.Suma de complejos\n"); printf("6.Resta de complejos\n"); printf("7.Multiplicacion de complejos\n"); printf("8.Comprobar si el complejo es puro\n"); printf("9.Salir del programa\n"); printf("Elija opcion\n\n"); scanf("%d",&opcion);

switch(opcion){ case 1: lectura(&r1,&i1); break; case 2: lectura(&r2,&i2); break; case 3: imprimir(r1,i1); break; case 4: imprimir(r2,i2); break; case 5: sumar(r1, i1, r2, i2,&r,&i); printf("El complejo es (%d,%di)\n",r,i); break; case 6: restar(r1, i1, r2, i2,&r,&i); printf("El complejo es (%d,%di)\n",r,i); break; case 7: multiplicar(r1,r2,i1,i2,&r,&i); printf("El complejo es (%d,%di)\n",r,i); break; case 8: p=puro(r1,i1); if(p==1) printf("El primer complejo es puro\n"); else printf("El primer complejo no es puro\n"); p=puro(r2,i2); if(p==1) printf("El segundo complejo es puro\n"); else printf("El segundo complejo no es puro\n"); break; default: printf("Opcion incorrecta"); } } while(opcion!=9); }

void lectura(int *r,int *i){ printf("Dame la parte real del complejo\n"); scanf("%d",r); getchar(); printf("Dame la parte imaginaria del complejo\n"); scanf("%d",i); getchar(); }

void imprimir(int r, int i){ printf("El complejo es (%d,%di)\n",r,i); } void sumar(int r1,int i1,int r2, int i2,int*r,int*i) { *r=r1+r2; *i=i1+i2; } void restar(int r1, int i1, int r2, int i2, int*r, int*i){ *r=r1-r2; *i=i1-i2;}

void multiplicar(int r1, int i1, int r2, int i2, int *r, int *i){ *r=r1*r2 - i1*i2; *i=r1*i2+ i1*r2; } int puro(int r,int i){ if(i==0) return 1; else return 0;}

61) Realizar un programa que tenga: a. Una funcin para calcular el permetro de una circunferencia a partir del radio (2*PI*r). b. Una funcin para calcular el rea de un crculo (PI*r*r). c. Una funcin para calcular el volumen de un cilindro (area_circulo*altura), que puede usar las funciones anteriores. d. Un funcin principal que pida el radio y la altura de un cilindro y, usando las funciones anteriores, informe del permetro de la parte circular del cilindro, del rea del crculo y del volumen del cilindro. Nota. Para contestar el apartado d, se ha optado por realizar un men mediante la sentencia switch(), de forma que el usuario decida qu quiere calcular.

#include<stdio.h> #define PI 3.1415 float calcular_permetro (float r); float calcular_rea (float r); float calcular_volumen (float calcular_area, float h); void menu (float radio, float altura); void main(void){

float r=0,h=0; menu (r,h); } float calcular_permetro (float r){ float p; p=(2*PI*r); return p; } float calcular_area (float r){ float area; area=(PI*r*r); return area; } float calcular_volumen (float calcular_area, float h){ float vol; vol=(calcular_area*h); return vol;} void menu (int radio, int altura){ int opcion; float r,h; printf("Dame el radio"); scanf("%f", &r); getchar(); printf("Dame la altura"); scanf("%f", &h); getchar(); do { printf("Que quieres calcular pequeo hijoputa?\n"); printf("1.Calcular perimetro\n"); printf("2.Calcular area\n"); printf("3.Calcular volumen\n"); printf("4.Salir del programa\n\n"); scanf("%d",&opcion); getchar(); switch (opcion){ case 1: printf("El perimetro es %f pollas\n",calcular_permetro(r)); break; case 2: printf("El area es %f pollas\n",calcular_area(r)); break; case 3: printf("El volumen es %f pollas\n",calcular_volumen(calcular_area(r), h)); break; default: printf("Eres un mierdassss\n"); } } while (opcion!=4); }

74) Realizar un programa que, mediante un men e implementadas mediante funciones, permita realizar las siguientes operaciones con polinomios de segundo grado: a. Leer un polinomio de segundo grado. b. Imprimir el polinomio de segundo grado que haya sido ledo en ltima instancia. c. Calcular el valor del polinomio f(x) en un punto x, cuando x toma un valor real. d. Calcular la derivada del polinomio de segundo grado introducido. El usuario podr abandonar el programa cuando desee, reflejando dicho hecho mediante una opcin en el men. Nota. Para la resolucin de este ejercicio, el paso de parmetros a las funciones podr realizarse por valor o por referencia; dependiendo de lo que se estime ms adecuado en cada caso. No se permite el uso de la sentencia return.

#include <stdio.h> #include <math.h> void leer_polinomio(int polinomio[3]); void imprimir_polinomio(int polinomio[3]); int imagen(int polinomio[3],int x); void derivada(int polinomio[3],int deri[2]); void main(void){ int polinomio [3],deri[2]; int x; leer_polinomio(polinomio[3]); imprimir_polinomio(polinomio[3]); imagen(polinomio[3],x,sol1,sol2 ); derivada(polinomio[3],deri[2]);

void leer_polinomio(int polinomio[x){ printf(Dame los coeficientes de la ecuacion de mierda); for(i=1;i<=3;i++){ scanf(%d,&polinomio[i]); getchar(); }

} void imprimir_polinomio(int polinomio[x]){ printf(El polinimio es (%d x^2) +(%d x) + %d,polinomio[0],polinomio[1],polinomio[2]); } int imagen(int polinomio[x],int x, ){ int a a= ((x*x*polinomio[0]) + (x*polinomio[1]) + (polinomio[0])) } void derivada(int polinomio[x],int polinomio[x]){ polinomio[0]=2*polinomio[0] polinomio[1]=polinomio[1] }

Ejercicio 74(19/12/11).#include <stdio.h> //no consigo compilarlo y sin embargo no me da errores,que pasa?. Gracias// void leer (int pol[]); void imprimir (int pol[]); void calcular (int pol[]); void derivada(int pol[]); void main (void){ int polinomio[3]={0,0,0}; leer (polinomio); imprimir(polinomio); calcular(polinomio); derivada(polinomio); imprimir(polinomio);

} void leer (int pol[]){ int i; for(i=0;i<3;i++){ printf("Introduce el valor del elemento %d: ",i); scanf("%d",&pol[i]); getchar();}}

void imprimir(int pol[]){ printf("El polinomio es (%d)x^2+(%d)x+(%d)\n",pol[0],pol[1],pol[2]); } void calcular(int pol[]){ int x; printf("Dame la x\n"); scanf("%d",&x); getchar(); x = pol[0]*x*x + pol[1]*x + pol[2]; printf("La imagen es %d\n",x); } void derivada(int pol[]){ pol[0]=0; pol[1]=2*pol[1]; pol[2]=pol[2];}

81) Leer una lista de calificaciones (valores reales) de una clase. Calcular su media e imprimir una lista de calificaciones mayores que la media. Las restricciones que debern tenerse en cuenta a la hora de realizar este programa son: a. Deber utilizarse un vector para almacenar las calificaciones, con un tamao igual al nmero de alumnos que existan en la clase. El nmero de alumnos ser fijado mediante la directiva #define. b. La operaciones media e imprimir (una lista de calificaciones mayores que la media) debern realizarse mediante funciones. c. Dentro de la funcin media no podr emplearse la sentencia printf(). #include <stdio.h> #define n 10 int media (int list[]); int imprimir (int list[]); void main (void){ int lista[n]; int media[n]; int i,j,k; for(i=0;i<n;i++){ printf(Dame la nota %d,i); scanf(%d,&lista[i]); getchar(); } printf(La media es %d\n,media ( lista[]));

printf( %d \n, imprimir( lista[])); } int media (int list[]){ int media, resultado, j; for(j=0;j<n;j++){ resultado=resultado+list[j]; } media=(resultado/n); return media; } int imprimir (int list[]){ for(k=0;k<n;k++){ if(list[k]>media) return list[k]; } }

Ejercicio 81. asi compila y hace bien la media pero no la muestra bien en pantalla...mu raro. #include <stdio.h> #define n 10 void media (int list[n],int *resultado); void imprimir (int list[n],int resultado); void main (void){ int lista[n]; int i,resultado=0; for(i=0;i<n;i++){ printf("Dame la nota %d",i); scanf("%d",&lista[i]); getchar(); } media(lista,&resultado); imprimir(lista,resultado); } void media (int list[n], int *resultado){ int i; for(i=0;i<n;i++){ *resultado=*resultado+list[i];

} *resultado=(*resultado/n); printf("La media es %d\n",resultado); } void imprimir (int list[],int resultado){ int i=0; for(i=0;i<n;i++){ if(resultado<list[i]){ printf("la nota de los alumnos que es mayor que la media es %d\n",list[i]); } } }

Ejercicio 80. Crear un programa que calcule el valor mximo, mnimo y la media de un vector de 10 elementos enteros mediante tres funciones distintas; que implementarn cada una de ellas el mximo, el mnimo y la media, dentro de las cuales no podr utilizarse el comando printf(). Dichos valores debern ser ledos mediante otra funcin. Los resultados de las funciones mximo, mnimo y media se imprimirn desde el programa principal.
#include<stdio.h> void leer(int vector[10]); int maximo(int vector[10]); int minimo(int vector[10]); float media(int vector[10]);

void main (void){ int vector[10]; printf("El valor maximo de la cadena es %d \n",maximo(vector)); printf("El valor minimo de la cadena es %d \n",minimo(vector)); printf("El valor de la media es %f \n",media(vector)); }

void leer(int vector[10]){ int i; for(i=0;i<10;i++){ printf("Introduce el valor %d: \n",i+1); scanf("%d",&vector[i]); getchar(); } }

int maximo(int vector[10]){ int maximo=vector[0]; for(i=0;i<10;i++){ if(vector[i]>maximo){ maximo=vector[i]; } } return maximo; }

int minimo(int vector[10]){ int i,minimo=vector[0]; for(i=0;i<10;i++){ if(vector[i]<minimo){ minimo=vector[i];} } return minimo;} float media(int vector[10]){ int i,suma=0;

float media; for(i=0;i<10;i++){ suma=suma+vector[i]; } media=suma/10; return media; }

82) Escribir un programa que rellene automticamente una matriz 4x7 con la suma de sus ndices (es decir, el elemento a11 = 1 + 1 = 2, y el elemento a47 = 4 + 7 = 11), y que muestre la matriz resultante por pantalla. El programa deber estar dividido en las siguientes funciones: a. rellenar_matriz(). Esta funcin almacena los valores adecuados en la matriz. b. imprime_matriz(). Esta funcin se encargar de presentar la matriz por pantalla

#include <stdio.h> void rellenar_matriz(int matriz[4][7]); void imprime_matriz(int matriz[4][7]); void main(){ int mat [4][7]; rellenar_matriz(mat); imprime_matriz(mat); } void rellenar_matriz(int matriz[4][7]){ int i,j; for(i=0;i<4;i++){ for (j=0;j<7;j++){ matriz [i][j]=i + j; } } }

void imprime_matriz(int matriz[4][7]){ int i,j; for (j=0;j<7;j++){ for(i=0;i<4;i++){ printf("%d \t",matriz[i][j]); }printf("\n"); } } PROBLEMA DE EDU. Dale la vuelta a una palabra. eduardo = odraude

#include <stdio.h> #include <string.h> void tortilla(char pala[]); int main(void){ char palabra[100]; printf("Dame la palabra que quieres invertir y cada dia el de mas gente: \n"); scanf("%s",&palabra); getchar(); tortilla(palabra); } void tortilla(char pala[]){ int i,longitud; longitud=strlen(pala); for(i=longitud-1;i>=0;i--){ printf("%c",pala[i]); }printf("\n\n"); } Mostrar la diagonal principal de la matriz.

#include <stdio.h>

void matriz(int diagonal[4][4]); void rellenar(int diagonal[4][4]); void main (void){ int diagonal [4][4];

rellenar(diagonal); matriz(diagonal); } void rellenar (int diagonal[4][4]){ int i,j; for(i=0;i<=3;i++){ for(j=0;j<=3;j++){ printf("Dime las coordenadas del punto (%d,%d):\n",i,j); scanf("%d",&diagonal[i][j]); } } } void matriz(int diagonal[4][4]){ int i,j; for(i=0;i<=3;i++){ for(j=0;j<=3;j++){ if(i==j) printf("(%d)",diagonal[i][j]); } } }

por referencia y por valor. una funcion q sume dos numeros POR VALOR #include <stdio.h> int sumar(int c, int d); void main (void){ int a, b; printf(Dame a: /n); scanf(%d,&a); getchar(); printf(Dame b: /n); scanf(%d,&b); getchar(); printf(El resultado de sumar %d y %d es %d \n,a,b,sumar(a,b); } int sumar(int c, int d){ return c + d;

} POR REFERENCIA #include <stdio.h> void sumar(int c,int d,int *resul); void main (void){ int resultado=0,a=0,b=0; printf("Dame a: \n"); scanf("%d",&a); getchar(); printf("Dame b: \n"); scanf("%d",&b); getchar(); sumar(a,b,&resultado); printf("El resultado es %d \n",resultado); } void sumar(int c,int d,int *resul){ *resul=c+d; }

78) Escribir un programa que calcule el nmero de billetes de 500, 200, 100, 50, 20, 10 y 5 euros, as como de monedas de 2 y 1 euros, y de 50, 20, 10, 5, 2 y 1 cntimos de euros; para desglosar una cantidad dada, de forma que se necesite la menor cantidad de monedas y billetes de cada tipo Ejemplo: 535,45 es 1 billete de 500, 1 billete de 20 euros, 1 billete de 10 euros, un billete de 5 euros, dos monedas de 20 cntimos de euro y una moneda de 5 cntimos de euro. #include<stdio.h> void main (void){ int euros[9]={500,200,100,50,20,10,5,2,1}; int centimos[6]={50,20,10,5,2,1}; float cantidad; int i; int cantidad_entera, cantidad_real; printf("Dame la cantidad de dinero: \n");

scanf("%f",&cantidad); getchar(); cantidad_entera=(int) cantidad; for(i=0;i<=9;i++){ if(i<=6) printf("%d billetes de %d euros \n",cantidad_entera/euros[i],euros[i]); else printf("%d monedas de %d euros\n",cantidad_entera/euros[i],euros[i]); cantidad_entera=cantidad_entera%euros[i]; } cantidad_real=(cantidad-(int)cantidad_entera)*100; for(i=0;i<=6;i++){ printf("%d monedas de %d centimos \n",cantidad_real/centimos[i],centimos[i]); cantidad_real=cantidad_real%centimos[i]; } } 80) Crear un programa que calcule el valor mximo, mnimo y la media de un vector de 10 elementos enteros mediante tres funciones distintas; que implementarn cada una de ellas el mximo, el mnimo y la media, dentro de las cuales no podr utilizarse el comando printf(). Dichos valores debern ser ledos mediante otra funcin. Los resultados de las funciones mximo, mnimo y media se imprimirn desde el programa principal.

#include<stdio.h> void lectura(int vector[10]); int maximo(int vector[10]); int minimo(int vector[10]); float media(int vector[10]); void main(void){ int max, min; float M; int vector[10]; lectura(vector); max=maximo(vector); printf("El maximo es %d\n", max); min=minimo(vector); printf("El minimo es %d\n", min); M=media(vector);

printf("La media va a ser %f\n", M);

} void lectura(int vector[10]){ int i; for(i=0;i<10;i++){ printf("Introduce el valor %d\n",i); scanf("%d",&vector[i]); getchar();} } int maximo(int vector[10]){ int i, maximo; maximo=vector[0]; for(i=0;i<10;i++){ if(vector[i]>maximo){ maximo=vector[i]; }} return maximo; } int minimo(int vector[10]){ int i, minimo; minimo=vector[0]; for(i=0;i<10;i++){ if(vector[i]<minimo) minimo=vector[i]; } return minimo; } float media(int vector[10]){ int i, media=0; for(i=0; i<10; i++){ media=media+vector[i]; } return (float)media/(int)10; }

81) Leer una lista de calificaciones (valores reales) de una clase. Calcular su media e imprimir una lista de calificaciones mayores que la media. Las restricciones que debern tenerse en cuenta a la hora de realizar este programa son: a. Deber utilizarse un vector para almacenar las calificaciones, con un tamao igual al nmero de alumnos que existan en la clase. El nmero de alumnos ser fijado mediante la directiva #define. b. La operaciones media e imprimir (una lista de calificaciones mayores que la media) debern realizarse mediante funciones. c. Dentro de la funcin media no podr emplearse la sentencia printf(). #include <stdio.h> #define alumnos 10 void imprimir(float vector[alumnos]); float media(float vector[alumnos]);

void main (void){ int i,m; float vector[alumnos]; for(i=0; i<alumnos; i++){ printf(Introduce el valor %d\n, i); scanf(%f, &vector[i]); getchar(); m=media(vector[alumnos]); printf(La media de las notas va a ser %f\n, m); imprimir(vector, m); }

float media(float vector[alumnos]){ int i; float m; float suma=0; for(i=0;i<alumnos;i++){ suma=suma+vector[alumnos]; } m=suma/alumnos return m; }

void imprimir(float vector[alumnos],m){ int i; for(i=0;i<alumnos; i++){ if(vector[i]>=m){ printf(La nota %d es mayor que la media\n,vector[i]); } }

82) Escribir un programa que rellene automticamente una matriz 4x7 con la suma de sus ndices (es decir, el elemento a11 = 1 + 1 = 2, y el elemento a47 = 4 + 7 = 11), y que muestre la matriz resultante por pantalla. El programa deber estar dividido en las siguientes funciones: a. rellenar_matriz(). Esta funcin almacena los valores adecuados en la matriz. b. imprime_matriz(). Esta funcin se encargar de presentar la matriz por pantalla. #include <stdio.h> void rellenar_matriz(int matriz[4][7]); void imprimir_matriz(int matriz[4][7]); void main (void){ int matriz[4][7]; rellenar_matriz(matriz); imprimir_matriz(matriz); } void rellenar_matriz(int matriz[4][7]){ int i,j; for(i=0;i<4;i++){ for(j=0;j<7;j++){ matriz[i][j]=i+j+2; } } } void imprimir_matriz(int matriz[4][7]){ int i,j; for(i=0;i<4;i++){ for(j=0;j<7;j++){

printf("%d\t",matriz[i][j]); } printf("\n"); } }

85) Realizar un programa que declare e inicialice una matriz cuadrada y que calcule e imprima su traspuesta. Imprimir la matriz original y la traspuesta. #include <stdio.h> void rellenar(int matriz[4][4]); void imprimir(int matriz[4][4]); void main (void){ int i,j; int matriz[4][4]; int traspuesta[4][4]; rellenar(matriz); printf("La matriz original es: \n"); imprimir(matriz); for(i=0;i<4;i++){ for(j=0;j<4;j++){ traspuesta[i][j]=matriz[j][i]; }} printf("La matriz traspuesta es: \n"); imprimir(traspuesta); } void rellenar(int matriz[4][4]){ int i,j; for(i=0;i<4;i++){ for(j=0;j<4;j++){ printf("Dame el valor de la posicion (%d,%d): \n",i+1,j+1); scanf("%d",&matriz[i][j]); getchar(); }} } void imprimir(int matriz[4][4]){ int i,j;

for(i=0;i<4;i++){ for(j=0;j<4;j++){ printf("%d\t",matriz[i][j]); } printf("\n"); } }


77) Escribir un programa y crear en l una funcin que busque un carcter determinado en una cadena (longitud mxima de la cadena 256 caracteres). El nombre de la funcin ser buscacaracter(), y deber devolver un valor entero con la posicin en que fue encontrado el carcter por primera vez. Si no se encontr el carcter la funcin devolver -1. Los parmetros de entrada a la funcin sern una cadena y un carcter. #include<stdio.h> #include <string.h> int buscacaracter(char cadena[256],char c);

void main(void){ char cadena[256], car; int posicion,longitud; printf("Introduce la cadena de caracteres: \n"); scanf("%s",&cadena); getchar(); longitud=strlen(cadena); printf("Introduce el caracter que quieres buscar: \n"); scanf("%c",&car); getchar(); posicion=buscacaracter(cadena,car,longitud); if(posicion!=-1){ printf("la posicion en la que fue encontrado es %d\n",posicion); } else printf("No se encontro el caracter\n");} int buscacaracter(char cadena[256],char c,int longitud){

int i,posicion; for(i=0;i<longitud;i++){ if(cadena[i]==c){ posicion=i+1; return posicion; break; } } return -1; }

También podría gustarte