Академический Документы
Профессиональный Документы
Культура Документы
y apellidos:
Grupo:
N. Matrcula:
Escribir
en
el
lugar
reservado
bajo
cada
programa
lo
que
cada
uno
de
ellos
mostrara
exactamente
en
la
pantalla.
Si
hubiese
algn
error,
indicarlo
brevemente.
#include <stdio.h>
#include <stdio.h>
struct hora
{
int h; int m;
};
void main(){
int main(void)
{
struct hora;
hora.h=3;hora.m=23;
printf("Hora:%d:%d",hora.h,hora.m);
}
Odqqn
#include <stdio.h>
int main(void)
{
char verdadero = 0;
char falso = 12;
if (verdadero)
printf("%d\n", verdadero);
else
printf("Algo ha fallado!\n");
if (falso)
printf("Algo ha fallado!\n");
else
printf("%d\n", falso);
return 0;
}
Algo ha fallado!
Algo ha fallado!
Ejercicio
2
(2.5
puntos,
20
minutos)
Escribir
un
programa
que
pida
un
nmero
al
usuario
(mayor
que
1)
y:
1. Devuelva
el
primer
nmero
de
la
sucesin
de
Fibonacci
que
sea
mayor
al
nmero
dado.
2. Devuelva
el
nmero
ms
cercano
(ya
sea
mayor
o
menor
al
dado).
El
nmero
entero
introducido
por
el
teclado
debe
ser
mayor
que
1:
el
programa
comprobar
esta
condicin
y
pedir
de
nuevo
el
nmero
si
sta
no
se
cumple.
Ejemplo:
>Introduzca
un
nmero
(mayor
que
1
):
-3
>
Introduzca
un
nmero
(mayor
que
1
):
6
Numero
de
Fibonacci:
5
>
Introduzca
un
nmero
(mayor
que
1
):
7
Numero
de
Fibonacci:
8
Nota.-
La
sucesin
de
Fibonacci
comienza
con
los
nmeros
1
y
1,
y
a
partir
de
estos,
cada
trmino
es
la
suma
de
los
dos
anteriores.
1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,
Solucin
#include <stdio.h>
void main()
{
int fib1=1;
int fib2=2;
int aux=0;
int n;
//BUCLE "CENTINELA"
do
{
printf("Introduzca n (mayor o igual que 1): ");
scanf("%d", &n);
}
while(n<1);
//BUCLE "PRINCIPAL"
for(int i=1;;i++)
{
aux=fib1;
fib1=fib2;
fib2+=aux;
if (fib2>n)
{
if ((fib2-n)<(n-fib1))
printf("Fib num=%d\n", fib2);
else printf("Fib num=%d\n", fib1);
break;
}
}
}
Ejercicio
3
(2,5
puntos,
25
minutos)
Se pide hacer un programa que lea una frase por teclado (mximo 100 caracteres) y una
palabra y diga:
1.
Si esa palabra se encuentra en la frase o no.
2.
El nmero de veces que esa palabra est en la frase.
Nota. No se permite el uso de la librera string.h
Solucin
#include <stdio.h>
void main()
{
char frase1[20], frase2[20];
int i=0, j=0, k, encontrado=0, numveces=0, longitud2=0;
printf("Introduzca la frase: ");
gets(frase1);
printf("Introduzca la palabra: ");
gets(frase2);
while(frase2[longitud2] != '\0')
{
longitud2++;
}
while (frase1[i]!='\0')
{
if (frase1[i]==frase2[0]) //Si coincide la 1 letra seguimos buscando
{
encontrado=1;
k=i; // k es un nuevo ndice para buscar a partir de i
j=0; // j es el ndice para recorrer frase2
while (frase2[j]!='\0')
{
if (frase1[k]!=frase2[j])
{
encontrado=0;
break;
}
j++;
k++;
}
if (j==longitud2)
{
numveces++;
}
}
i++;
}
if (encontrado) printf("\nEncontrado %d veces\n", numveces);
else printf("\nNo Encontrado\n");
}
Ejercicio
4
(2,5
puntos,
25
minutos)
En
una
biblioteca
se
quiere
implementar
un
sistema
de
gestin
de
prstamos
de
libros.
Para
ello
se
crea
la
siguiente
estructura
con
los
campos
cdigo
para
almacenar
el
numero
de
identificacin
del
libro
y
email
para
almacenar
el
email
de
la
persona
que
lo
tiene
prestado:
struct
Prestamo
{
int
codigo;
char
email[20];
};
Se
pide
escribir
un
programa
que:
1. Cree
un
vector
de
100
Prestamo
(llamado
ListaPrestamos)
y
lo
inicialice
con
2
valores.
2. Permita
al
usuario
introducir
nuevos
prstamos
(todos
los
que
quiera)
3. Permita
al
usuario
buscar
el
cdigo
del
libro
que
tiene
prestado
una
persona
dado
su
email.
Si
no
hay
ninguna
persona
con
ese
email
en
la
ListaPrestamos
el
programa
debe
indicarlo.
Nota:
se
puede
usar
la
librera
<string.h>
Solucin
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define NUM_MAX_PRESTAMOS 100
struct Prestamo {
int codigo;
char email[20];
};
int main(){
struct Prestamo
ListaPrestamos[NUM_MAX_PRESTAMOS]={{1234,"pepe@upm.es"},{5445,"paco@upm.es"}};
char opcion='y', encontrado=0;
char emailbusqueda[50];
int index=1;
while(opcion!='n'){
index++;
printf("Introduzca codigo:");
scanf("%d",&ListaPrestamos[index].codigo);
printf("\nIntroduca email:");
gets(ListaPrestamos[index].email);
printf("\nIntroducir otro contacto(s/n)?\n");
scanf("%c",&opcion);
}
printf("Introduzca email de busqueda\n");
gets(emailbusqueda);
for(int i=0;i<NUM_MAX_PRESTAMOS; i++){
if (strcmp(ListaPrestamos[i].email,emailbusqueda)==0){
printf("Libro=%d\n",ListaPrestamos[i].codigo);
encontrado=1;
}
}
if (encontrado==0) printf("Email no encontrado\n");
}