Ramón Mollá Vayá
Inmaculada García García
Laura Sebastiá Tarín
Jon Ander Gómez Adrián
José Miguel Alonso Ábalos
David Guerrero López
Miguel Ángel Martín Caro
PROBLEMAS RESUELTOS
EN LENGUAJE C
EDITORIAL
UNIVERSITAT POLITÈCNICA DE VALÈNCIA
Dist ribución:
printf scanf
int, float, char.
#define
#include <stdio.h>
#define DATO 4
main()
{
int x, y=1;
float z;
x=3/2+10-3;
z=3.0/2.0+10-3;
printf ("%d -- %f\n", x, z);
printf ("%d\n", DATO*3+1/2);
printf ("%d\n", 5+2-1>5);
printf ("%d\n", 3>1 || DATO*2<1);
printf ("%d\n", 5!=1 && DATO>2);
y=x;
printf ("%d\n", x+y<=z);
}
printf
DATO
x, y z
flota).
x, y z
y
x
1+10-3
1.5+10-3
z
x z
8 – 8.500000
DATO
12+0
12
3>1
DATO*2<1
5!=1
DATO>2
y
x
x y
8+8<=8.500000
#include <stdio.h>
main()
{
int a, b=0;
a=b*b+1;
printf ("Si b=%d, entonces a=%d\n", b, a);
b=2;
printf ("Si b=%d, entonces a=%d\n", b, a);
b=-2;
printf ("Si b=%d, entonces a=%d\n", b, a);
}
#include <stdio.h>
main()
{
int a, b=0;
a=b*b+1;
b a
printf ("Si b=%d, entonces
a=%d\n", b, a); b a
Si b=0, entonces a=1
b=2;
a
printf ("Si b=%d, entonces
a=%d\n", b, a);
Si b=2, entonces a=1
b
a
scanf
a b
b a
a b
#include <stdio.h>
main()
{
int a, b=0;
a=b*b+1;
printf ("Si b=%d, entonces a=%d\n", b, a);
b=2;
a=b*b+1;
printf ("Si b=%d, entonces a=%d\n", b, a);
b=-2;
a=b*b+1;
printf ("Si b=%d, entonces a=%d\n", b, a);
}
Si b=0, entonces a=1
Si b=2, entonces a=5
Si b=-2, entonces a=5
precio_coste margen
precio_neto
precio_neto
precio_coste
float margen
float
precio_neto
float
precio_neto=precio_coste*(100+margen)/100
precio_neto=precio_coste/100*(100+margen)
precio_neto=precio_coste*100+margen/100
scanf
printf
#include <stdio.h>
/* Programa que calcula el precio neto de un producto
de una empresa de venta de recambios de automoviles */
main()
{
float precio_neto, precio_coste, margen;
/* Entrada de datos: precio_coste y margen */
printf ("Cual es el precio de coste?");
scanf ("%f", &precio_coste);
printf ("Cual es el margen?");
scanf ("%f", &margen);
/* Proceso: calculo del precio neto */
precio_neto=precio_coste*(100+margen)/100;
/* Salida de datos */
printf ("El precio neto de este producto es de %f euros\n",
precio_neto);
}
minuscula.
mayuscula.
mayuscula.
mayuscula
minuscula char
#include <stdio.h>
main()
{
printf ("%d\n", 'a');
}
char
char
mayuscula = minuscula – 32
mayuscula
#include <stdio.h>
/* Programa que lee un caracter en minusculas y lo escribe en
mayusculas */
main()
{
char minuscula, mayuscula;
/* Lectura de datos: minuscula. */
printf ("Introduce un caracter en minuscula: ");
scanf ("%c", &minuscula);
/* Proceso: transformacion a mayuscula */
mayuscula = minuscula - 32;
/* Salida */
printf ("El caracter %c en mayuscula es %c\n", minuscula,
mayuscula);
}
mayuscula = minuscula – 'a' + 'A';
cateto1 cateto2
hipotenusa area
cateto1 cateto2
hipotenusa perimetro
hipotenusa area
perimetro.
float
x x
cuadrado_x = x*x;
x
sqrt x
raiz_cuadrada_x = sqrt(x);
#include <stdio.h> #include <math.h>
cuadrado_cateto_1 = cateto1*cateto1;
cuadrado_cateto_2 = cateto2*cateto2;
suma_cuadrados_catetos = cuadrado_cateto_1+cuadrado_cateto_2;
hipotenusa = sqrt(suma_cuadrados_catetos);
suma_cuadrados_catetos
cuadrado_cateto_1 = cateto1*cateto1;
cuadrado_cateto_2 = cateto2*cateto2;
hipotenusa = sqrt(cuadrado_cateto_1+cuadrado_cateto_2;);
#include <stdio.h>
#include <math.h>
/* Programa que calcula la hipotenusa, el area y el perimetro
de un triangulo rectangulo a partir de sus catetos */
main()
{
float cateto1, cateto2, hipotenusa, area, perimetro;
/* Lectura de datos de entrada: cateto1 y cateto2 */
printf ("Cateto1? ");
scanf ("%f", &cateto1);
printf ("Cateto2? ");
scanf ("%f", &cateto2);
/* Proceso: calculo de la hipotenusa, del area y del
perimetro */
hipotenusa=sqrt(cateto1*cateto1 + cateto2*cateto2);
area=(cateto1*cateto2)/2.0;
perimetro=cateto1+cateto2+hipotenusa;
/* Salida de los resultados */
printf ("La hipotenusa es: %f\n", hipotenusa);
printf ("El area es: %f\n", area);
printf ("El perimetro es: %f\n", perimetro);
}
euros_a_devolver euros_a_devolver
falta_por_devolver
falta_por_devolver
monedas_50c
falta_por_devolver monedas_50c
falta_por_devolver
falta_por_devolver
monedas_20c
falta_por_devolver monedas_20c
falta_por_devolver
falta_por_devolver
monedas_10c
falta_por_devolver monedas_10c
falta_por_devolver
falta_por_devolver
monedas_5c
monedas_50c,
monedas_20c, monedas_10c monedas_5c
euros_a_devolver falta_por_devolver
float
monedas_50c, monedas_20c, monedas_10c
monedas_5c
int
#include <stdio.h>
/*Programa que calcula el cambio en una maquina expendedora*/
main()
{
float euros_a_devolver, falta_por_devolver;
int monedas_50c, monedas_20c, monedas_10c, monedas_5c;
/* Lectura de datos: euros_a_devolver */
printf ("Euros a devolver: ");
scanf ("%f", &euros_a_devolver);
/* Proceso */
falta_por_devolver=euros_a_devolver;
monedas_50c=falta_por_devolver/0.5;
falta_por_devolver=falta_por_devolver-0.5*monedas_50c;
monedas_20c=falta_por_devolver/0.2;
falta_por_devolver=falta_por_devolver-0.2*monedas_20c;
monedas_10c=falta_por_devolver/0.1;
falta_por_devolver=falta_por_devolver-0.1*monedas_10c;
monedas_5c=falta_por_devolver/0.05;
/* Salida */
printf ("La cantidad de %f euros se devolvera asi:\n",
euros_a_devolver);
printf ("- %d monedas de 50 centimos\n", monedas_50c);
printf ("- %d monedas de 20 centimos\n", monedas_20c);
printf ("- %d monedas de 10 centimos\n", monedas_10c);
printf ("- %d monedas de 5 centimos\n", monedas_5c);
}
monedas_50c=falta_por_devolver/0.5;
falta_por_devolver int
monedas_50c=falta_por_devolver/50;
#include <stdio.h>
/*Programa que calcula el cambio en una maquina expendedora*/
main()
{
float euros_a_devolver;
int monedas_50c, monedas_20c, monedas_10c, monedas_5c;
int falta_por_devolver;
/* Lectura de datos: euros_a_devolver */
printf ("Euros a devolver: ");
scanf ("%f", &euros_a_devolver);
/* Proceso */
falta_por_devolver=euros_a_devolver*100.0;
monedas_50c=falta_por_devolver/50;
falta_por_devolver=falta_por_devolver-50*monedas_50c;
monedas_20c=falta_por_devolver/20;
falta_por_devolver=falta_por_devolver-20*monedas_20c;
monedas_10c=falta_por_devolver/10;
falta_por_devolver=falta_por_devolver-10*monedas_10c;
monedas_5c=falta_por_devolver/5;
/* Salida */
printf ("La cantidad de %f euros se devolvera asi:\n",
euros_a_devolver);
printf ("- %d monedas de 50 centimos\n", monedas_50c);
printf ("- %d monedas de 20 centimos\n", monedas_20c);
printf ("- %d monedas de 10 centimos\n", monedas_10c);
printf ("- %d monedas de 5 centimos\n", monedas_5c);
}
#include <stdio.h>
main()
{
int x=3, y;
float z;
y=x+3;
printf (“%d\n”, y);
y=3*x*x + 2*x + 1;
printf (“%d\n”, y);
z=x*0.3;
printf (“%f\n”, z);
z=y/x;
printf (“%f\n”, z);
z=(float)y/x;
printf (“%f\n”, z);
}
6
34
0.900000
11.000000
11.333333
Producto Ventas Precio Total
--------------------------------------------
Cola 1000000 0.17 170000.00
Naranja 350000 0.20 70000.00
Limon 530000 0.19 100700.00
TOTAL 340700.00
printf
#include <stdio.h>
/* Programa que muestra el total de ventas de varios
productos de una empresa de refrescos */
main()
{
long int ventas_cola, ventas_naranja, ventas_limon;
float precio_cola, precio_naranja, precio_limon;
float total_cola, total_naranja, total_limon;
/* Lectura de datos: ventas y precio de cada producto */
printf ("Datos de la cola:\n");
printf ("\tVentas:");
scanf ("%ld", &ventas_cola);
printf ("\tPrecio: ");
scanf ("%f", &precio_cola);
printf ("Datos de la naranja:\n");
printf ("\tVentas:");
scanf ("%ld", &ventas_naranja);
printf ("\tPrecio: ");
scanf ("%f", &precio_naranja);
printf ("Datos del limon:\n");
printf ("\tVentas:");
scanf ("%ld", &ventas_limon);
printf ("\tPrecio: ");
scanf ("%f", &precio_limon);
/* Proceso */
total_cola = ventas_cola*precio_cola;
total_naranja = ventas_naranja*precio_naranja;
total_limon = ventas_limon*precio_limon;
/* Salida tabulada */
printf ("Producto Ventas Precio Total\n");
printf ("----------------------------------------------\n");
printf ("Cola %7ld %4.2f %9.2f\n",
ventas_cola, precio_cola, total_cola);
printf ("Naranja %7ld %4.2f %9.2f\n",
ventas_naranja, precio_naranja, total_naranja);
printf ("Limon %7ld %4.2f %9.2f\n",
ventas_limon, precio_limon, total_limon);
printf (" TOTAL %9.2f\n",
total_cola+total_naranja+total_limon);
}
#include <stdio.h>
/* Programa que muestra el valor de y=ax^3 + bx^2 + cx + d */
main()
{
float a, b, c, d, x, y;
/* Lectura de coeficientes */
printf("Evaluacion del polinomio y=ax^3 + bx^2 + cx + d.\n");
printf("Valor de los coeficientes a, b, c y d:");
scanf ("%f%f%f%f", &a, &b, &c, &d);
/* Lectura del valor de x */
printf ("Introducir el valor de la variable x:");
scanf ("%f", &x);
/* Proceso: calculo del polinomio */
y = a*x*x*x + b*x*x + c*x + d;
/* Salida */
printf ("El resultado del polinomio %.2f x^3 + %.2f x^2", a,
b);
printf (" + %.2f x + %.2f para x=%.2f es: %.2f\n", c, d, x,
y);
}
main() {
int x=7, y;
y=-2+x;
printf (“%d\n”, y);
y=y+2;
printf (“%d\n”, y);
y=(y==x);
printf (“%d\n”, y);
y++;
printf (“%d\n”, y);
}
a) 5 / 2 + 20 % 6
b) 4 * 6 / 2 - 15 / 2
c) 5 * 15 / 2 / (4 - 2)
d) 8 == 16 || 7 != 4 && 4 < 1
e) (4 * 3 < 6 || 3 > 5 - 2) && 3 + 2 < 12
f) 7 + 3 * 6 / 2 - 1
g) 2 % 2 + 2 * 2 - 2 / 2
h) (3 * 9 * (3 + (9 * 3 / (3))))
a) h = (a > b) || (b == c) ;
b) h = (a != b) && (a != b) || (x == z);
c) h = ((a >= b) || (x >= z)) && ((x != b) && (y == z));
d) h = (!(a > b)) || (x != b);
El resultado es: 2 3 1
#include <stdio.h>
main() {
int a, b, c;
printf ("Introduce tres números: ");
scanf ("%d%d%d", &a, &b, &c);
a=b; b=c; c=a;
printf ("El resultado es: %d %d %d\n", a, b, c);
}
if if...else
switch
lado_a
lado_b lado_c
lado_a lado_b
lado_a lado_c
lado_a lado_c
lado_b lado_c
area_cuadrado
area_cuadrado
area
area
lado_a lado_b lado_c
float float
p area_cuadrado
area
float
#include <stdio.h>
#include <math.h>
/* Programa que determina, dados los tres lados, si un
triangulo es equilatero, isosceles o escaleno y calcula el
area */
main()
{
float lado_a, lado_b, lado_c, p, area, area_cuadrado;
/* Lectura de datos */
printf ("Introduce los lados de un triangulo: ");
scanf ("%f%f%f", &lado_a, &lado_b, &lado_c);
/* Comprobar como es el triangulo */
if (lado_a==lado_b)
if (lado_a==lado_c)
printf ("El triangulo es equilatero\n");
else
printf ("El triangulo es isosceles\n");
else
if (lado_a==lado_c || lado_b==lado_c)
printf ("El triangulo es isosceles\n");
else
printf ("El triangulo es escaleno\n");
/* Calcular el area */
p = (lado_a+lado_b+lado_c)/2.0;
area_cuadrado = p*(p-lado_a)*(p-lado_b)*(p-lado_c);
area = sqrt(area_cuadrado);
printf ("El area del triangulo es %f\n", area);