Professional Documents
Culture Documents
ELAI-UPM
Ejemplo de ejecucin
Introduzca las componentes del vector 1.0 -2.0 3.0 4.0 5.0 El maximo del vector es 5.000000
Solucin o soluciones
#include <stdio.h> float maximodelvector(float vector[], int dimension); void main() { float v[5], maximo; int i; printf("Introduzca las componentes del vector\n"); for(i=0;i<5;i++) scanf("%f", &v[i]); maximo=maximodelvector(v, 5); printf("El maximo del vector es %f\n", maximo); } float maximodelvector(float vector[], int dimension) { float max; int i; for(i=0;i<dimension;i++) if(vector[i]>max || i==0]) max=vector[i]; return max; }
ELAI-UPM
Ejemplo de ejecucin
Introduzca las componentes del vector 1.0 -2.0 3.0 4.0 5.0 El minimo del vector es -2.000000
Solucin o soluciones
#include <stdio.h> float minimodelvector(float vector[], int dimension); void main() { float v[5], minimo; int i; printf("Introduzca las componentes del vector\n"); for(i=0;i<5;i++) scanf("%f", &v[i]); minimo=minimodelvector(v, 5); printf("El minimo del vector es %f\n", minimo); } float minimodelvector(float vector[], int dimension) { float min; int i; for(i=0;i<dimension;i++) if(vector[i]<min || i==0) min=vector[i]; return min; }
ELAI-UPM
Ejemplo de ejecucin
Introduzca las componentes del vector 1.0 -2.0 3.0 4.0 5.0 La media del vector es 2.200000
Solucin o soluciones
#include <stdio.h> float mediadelvector(float vector[], int dimension); void main() { float v[5], media; int i; printf("Introduzca las componentes del vector\n"); for(i=0;i<5;i++) scanf("%f", &v[i]); media=mediadelvector(v, 5); printf("La media del vector es %f\n", media); } float mediadelvector(float vector[], int dimension) { float suma=0; int i; for(i=0;i<dimension;i++) suma+=vector[i]; return (suma/dimension); }
ELAI-UPM
Ejemplo de ejecucin
Introduzca las componentes del vector 1.0 -2.0 3.0 4.0 5.0 El modulo del vector vale 7.416198
Solucin o soluciones
#include <stdio.h> #include <math.h> float modulodelvector(float vector[], int dimension); void main() { float v[5], modulo; int i; printf("Introduzca las componentes del vector\n"); for(i=0;i<5;i++) scanf("%f", &v[i]); modulo=modulodelvector(v, 5); printf("El modulo del vector vale %f\n", modulo); } float modulodelvector(float vector[], int dimension) { float suma=0; int i; for(i=0;i<dimension;i++) suma+=vector[i]*vector[i]; return (float)sqrt(suma); }
ELAI-UPM
Ejemplo de ejecucin
Introduzca la componentes del primer vector 0.0 1.0 0.0 Introduzca la componentes del segundo vector 2.0 -2.0 0.0 El producto escalar vale -2.000000
Solucin o soluciones
#include <stdio.h> float productoescalar(float vector1[], float vector2[], int dimension); void main() { float v1[3], v2[3], p; int i; printf("Introduzca las componentes del primer vector\n"); for(i=0;i<3;i++) scanf("%f", &v1[i]); printf("Introduzca las componentes del segundo vector\n"); for(i=0;i<3;i++) scanf("%f", &v2[i]); p=productoescalar(v1, v2, 3); printf("El producto escalar vale %f\n", p); } float productoescalar(float vector1[], float vector2[], int dimension) { float suma=0; int i; for(i=0;i<dimension;i++) suma+=vector1[i]*vector2[i]; return suma; }
ELAI-UPM
Ejemplo de ejecucin
Introduzca una palabra: Hola Hola tiene 4 caracteres
Solucin o soluciones
#include <stdio.h> int longcad(char cadena[]); void main() { char palabra[51]; int n; printf("Introduzca una palabra: "); scanf("%s", palabra); n=longcad(palabra); printf("%s tiene %d caracteres\n", palabra, n); } int longcad(char cadena[]) { int i=0; while(cadena[i]!='\0') i++; return i; }
ELAI-UPM
Ejemplos de ejecucin
Introduzca la primera palabra: hola Introduzca la segunda palabra: adios Las palabras tienen distinta longitud Introduzca la primera palabra: fundamentos Introduzca la segunda palabra: informatica Las palabras tienen la misma longitud
Solucin o soluciones
#include <stdio.h> int longcad(char cadena[]); void main() { char palabra1[51], palabra2[51]; printf("Introduzca la primera palabra: "); scanf("%s", palabra1); printf("Introduzca la segunda palabra: "); scanf("%s", palabra2); if(longcad(palabra1)==longcad(palabra2)) printf("Las palabras tienen la misma longitud\n"); else printf("Las palabras tienen distinta longitud\n"); } int longcad(char cadena[]) { int i=0; while(cadena[i]!='\0') i++; return i; }
ELAI-UPM
Ejemplo de ejecucin
Frase: Fundamentos de Informatica Introduzca el caracter: n El caracter n aparece 3 veces
Solucin o soluciones
#include <stdio.h> int contar(char cadena[], char caracter); void main() { char frase[]="Fundamentos de Informatica"; char car; int apariciones; printf("Frase: %s\n", frase); printf("Introduzca el caracter: "); scanf("%c", &car); apariciones=contar(frase, car); printf("El caracter %c aparece %d veces\n", car, apariciones); } int contar(char cadena[], char caracter) { int i=0, veces=0; while(cadena[i]!='\0') { if(cadena[i]==caracter) veces++; i++; } return veces; }
ELAI-UPM
Ejemplo de ejecucin
Introduce una cadena: Hola buenos dias como estas? En tu cadena hay 3 letras a.
Solucin o soluciones
#include <stdio.h> int cuentoA(char cad[]); void main() { char cad[50]; int cont=0; printf("Introduce una cadena:\n"); gets(cad); cont = cuentoA(cad); printf("En tu cadena hay %d letras a", cont); } int cuentoA(char cad[]) { int i=0, cont=0; while(cad[i] != '\0') { if(cad[i] == 'A' || cad[i] == 'a') cont++; i++; } return cont; }
ELAI-UPM
Ejemplo de ejecucin
Introduce el vector: 1 1 2 3 5 Tu vector tiene 4 numeros impares
Solucin o soluciones
#include <stdio.h> int impares(int vec[]); //tb int impares(int vec[], int num); void main() { int vec[5], imp=0, i; printf("Introduce un vector:\n "); for(i=0; i<5; i++) scanf("%d",&vec[i]); imp=impares(vec); printf("Tu vector tiene %d numeros impares", imp); } int impares(int a[]) { int cont=0, i; for(i=0; i<5; i++) if(a[i]%2 != 0) cont++; return cont; }
ELAI-UPM
Titulo: Formato
Enunciado
Realizar una funcin que imprima en una nueva lnea cada palabra de una frase introducida por el usuario. El prototipo de la funcin ser:
void formato (char cad[]);
La frase ser introducida por el usuario en el main(). No se pueden utilizar funciones de string.h
Ejemplo de ejecucin
Introduce una frase: Hola que tal estas? Hola que tal estas?
Solucin o soluciones
#include <stdio.h> void formato(char cad[]); void main() { char cad[50]; printf("Introduce una frase:\n"); gets(cad); formato(cad); } void formato(char cad[]) { int i=0; while(cad[i] != '\0') { if(cad[i] == ' ') printf("\n"); else printf("%c", cad[i]); i++; } }
ELAI-UPM
Ejemplo de ejecucin
Introduce el vector: 0 1 2 3 4 5 6 7 8 9 Los elementos pares son: 0 2 4 6 8
Solucin o soluciones
#include <stdio.h> void imprimopares(int vec[]); void main() { int i, vec[10]; printf("Introduce un vector:\n "); for(i=0; i<10; i++) scanf("%d ",&vec[i]); printf("Los elementos pares son: "); imprimopares(vec); } void imprimopares(int a[]) { int i; for(i=0; i<10;i++ ) if(a[i]%2 ==0) printf("%d ",a[i]); }
ELAI-UPM
Ejemplo de ejecucin
Introduce una frase: Hola que tal estas? Hola_que_tal_estas? tiene 19 caracteres.
Solucin o soluciones
#include <stdio.h> int mirocadena(char cad[]); void main() { char cad[50]; int largo; printf("Introduce una frase:\n"); gets(cad); largo=mirocadena(cad); printf(" tiene %d caracteres", largo); } int mirocadena(char a[]) { int i=0, cont=0; while(a[i] != '\0') { if(a[i] == ' ') a[i]= '_'; printf("%c", a[i]); i++; } return i; }
ELAI-UPM
Ejemplo de ejecucin
Introduzca el total de segundos a convertir: 8138 8138 segundos son 2 h, 15m, 38s
Solucin
#include<stdio.h> void convierte (int,int *,int *,int *); void main(void) { int segundos,h,m,s; printf ("Introduzca el total de segundos a convertir: "); scanf ("%d",&segundos); convierte(segundos,&h,&m,&s); printf("%d segundos son %dh, %dm, %ds\n",segundos,h,m,s); } void convierte (int segundos,int *h,int *m, int *s) { // *s segundos:resto de dividir el total entre 60 *s=segundos%60; // *h horas: cociente entero de dividir el total entre 3600 *h=segundos/3600; // *m:diferencia entre los segundos y *h pasadas a segundos // y se obtiene el cociente entero al dividir por 60 *m=(segundos-*h*3600)/60; }
ELAI-UPM
Ejemplo de ejecucin
Introduce una cadena: CaDeNa17 CADENA17
Solucin o soluciones
#include <stdio.h> void cambiar_a_mayus(char* cadena); void main() { char cad[100]; printf("Introduce una cadena: \n"); gets(cad); cambiar_a_mayus(cad); printf("%s\n", cad ); } void cambiar_a_mayus(char* cadena) { int i; for(i=0;cadena[i]!=0;i++) { if( (cadena[i]>='a') && (cadena[i]<='z') ) cadena[i]-= 32; } }
ELAI-UPM
Ejemplo de ejecucin
Maximo: 123 minimo: -23
Solucin
#include<stdio.h> void maxmin(int *,int,int *,int *); void main () { int datos[10]={1,3,-4,-2,5,123,32,-23,10,11}; int max,min; maxmin(datos,10,&max,&min); printf ("Maximo: %d minimo: } void maxmin (int *val,int can,int *max,int *min) { int i; if(can>0) { *max=val[0]; *min=val[0]; } for (i=1;i<can;++i) { if (val[i]>*max) *max=val[i]; if (val[i]<*min) *min=val[i]; } } %d\n",max,min);
ELAI-UPM
Ejemplo de ejecucin
Introduzca las componentes del vector -12 23 -123 2 -4 v[0]=12.000000 v[1]=23.000000 v[2]=123.000000 v[3]=2.000000 v[4]=4.000000
Solucin o soluciones
#include <stdio.h> void valor_absoluto(float vector[], int dimension); void main() { float v[5]; int i; printf("Introduzca las componentes del vector\n"); for(i=0;i<5;i++) scanf("%f", &v[i]); valor_absoluto(v, 5); for(i=0;i<5;i++) printf("v[%d]=%f\n", i,v[i]); } void valor_absoluto(float vector[], int dimension) { int i; for(i=0;i<dimension;i++) { if(vector[i]<0) vector[i]=-vector[i]; } }
ELAI-UPM
Ejemplo de ejecucin
Introduzca los coeficientes a,b y c 2 3 -10 Soluciones reales: 6.433981 -12.433981
Solucin o soluciones
#include <stdio.h> #include <math.h> //para la funcion raiz cuadrada sqrt int raices(float a,float b,float c,float* r1,float* r2); void main(void) { float a,b,c;//coeficientes float r1,r2;//raices, soluciones int ret; printf("Introduzca los coeficientes a,b y c\n"); scanf("%f %f %f",&a,&b,&c); ret=raices(a,b,c,&r1,&r2); if(ret) printf("Soluciones reales: %f %f\n",r1,r2); else printf("Ecuacion sin solucion real\n"); } int raices(float a,float b,float c,float* r1,float* r2) { float disc;//discriminante disc=b*b-4*a*c; if(disc>=0)//solucion real { *r1=(-b+(float)sqrt(disc))/2*a; *r2=(-b-(float)sqrt(disc))/2*a; return 1; } return 0; }