Ejercicios de Lenguaje C #02 Resol
Ejercicios de Lenguaje C #02 Resol
Ejercicios de Lenguaje C #02 Resol
Ejercicio 1
Crear un programa que lea un número entero y a partir de él cree un cuadrado de asteriscos con
ese tamaño. Los asteriscos sólo se verán en el borde del cuadrado, no en el interior-
#include <stdio.h>
int main(){
int n,fila,col;
/*Primera fila*/
for(col=1;col<=n;col++){
printf("*");
}
printf("\n");
/*Filas interiores*/
for(fila=2;fila<n;fila++){
printf("*");
for(col=2;col<n;col++){
printf(" ");
}
printf("*");
printf("\n");
}
/* Última fila*/
for(col=1;col<=n;col++){
printf("*");
}
}
Ejercicio 2
Crear un programa C que lea cantidades y precios y al final indique el total de la factura.
Primero se pregunta:
Introduzca la cantidad vendida
#include <stdio.h>
int main(){
int n;
double precio, total=0;
do{
do{
printf("\nIntroduzca la cantidad vendida: ");
scanf("%d",&n);
if(n<0) printf("Cantidad no valida");
}while(n<0);
if (n>0){
printf("Introduzca el precio: ");
do{
scanf("%lf",&precio);
if(precio<0) printf("Precio no valido");
else total+=n*precio;
}while(precio<0);
}
}while(n!=0);
Ejercicio 3
Crear un programa para calcular los salario semanal de unos empleados a los que se les paga 15
euros por hora si éstas no superan las 35 horas. Cada hora por encima de 35 se considerará extra y
se paga a 22 €.
El programa pide las horas del trabajador y devuelve el salario que se le debe pagar.
Además el programa debe preguntar si deseamos calcular otro salario, si es así el programa se
vuelve a repetir
#include <stdio.h>
#include <conio.h>
int main(){
char resp;
const int JORNADA=35,PRECIO_NORMAL=12,PRECIO_EXTRA=22;
int horas, salario;
do{
printf("Horas trabajadas: ");
scanf("%d",&horas);
if(horas<=35) salario=horas*PRECIO_NORMAL;
else salario=JORNADA*PRECIO_NORMAL+(horas-JORNADA)*PRECIO_EXTRA;
printf("Salario = %d euros\n\n", salario);
fflush(stdin); /* Para limpiar el buffer de teclado */
printf("¿Desea calcular otro salario (s/n)?\n");
scanf("%c",&resp);
} while(resp!='S' && resp!='s');
}
Ejercicio 4
Escribir un programa en C que lea números enteros indefinidamente hasta que llegue el número 0
#include <stdio.h>
int main(){
int x;
do{
scanf("%i",&x);
}while(x!=0);
}
Ejercicio 5
Crear el programa asteriscos4 en el que se introduce un número entero y se crea una pirámide de
asteriscos. Por ejemplo si se introduce el 6, el resultado sería:
*
***
*****
*******
*********
***********
#include <stdio.h>
int main(){
int n,fila,col;
printf("tamaño de la piramide: ");
scanf("%d",&n);
for(fila=1;fila<=n;fila++){
/* Espacios en blanco*/
for(col=1;col<=n-fila;col++){
printf(" ");
}
for(col=1;col<=2*fila-1;col++){
printf("*");
}
printf("\n");
}
}
Ejercicio 6
Modificar el ejercicio anterior para que aparezca un rombo.
#include <stdio.h>
int main(){
int n,fila,col;
printf("tamaño de la piramide: ");
scanf("%d",&n);
for(fila=1;fila<=n;fila++){
/* Espacios en blanco*/
for(col=1;col<=n-fila;col++){
printf(" ");
}
for(col=1;col<=2*fila-1;col++){
printf("*");
}
printf("\n");
}
Ejercicio 7
Crear un programa qu escriba dos columnas de números, en la primera se colocan los números del
1 al 100, en la segunda los números del 100 al 1
#include <stdio.h>
int main(){
int col1=1, col2=100;
while(col1<=100){
printf("%d\t\%d\n",col1,col2);
col1++;
col2--;
}
}
Ejercicio 8
Crear un programa en C que lea un número entero y positivo y que escriba tres columnas. La primera
cuenta desde uno hasta el número escrito contando de uno en uno; la segunda columna cuenta de
dos en dos y la tercera de tres.
#include <stdio.h>
int main(){
int col1=1, col2=1,col3=1;
int n;
printf("Escriba el número: ");
scanf("%d",&n);
while(col1<=n){
printf("%d",col1);
if(col2<=n) {
printf("\t%d",col2);
if(col3<=n){
printf("\t%d",col3);
col3+=3;
}
col2+=2;
}
printf("\n");
col1++;
}
}
Ejercicio 9
Crear el programa tablaMultiplicar que escriba la tabla de multiplicar del número 1 al número 15
#include <stdio.h>
int main(){
const int TAMANIO=15;
int i,j;
for(i=1;i<=15;i++){
for(j=1;j<=15;j++){
printf("%4d",i*j);
}
printf("\n");
}
}
Ejercicio 10
Crear un programa que muestre un menú como este:
1) Salir
2) Sumatorio
3) Factorial
Tras mostrar el menú, el programa debe leer un número del 1 al tres si se elige 1, el programa acaba.
Si se elige 2 se calcula el sumatorio del número, si se elige 3 se calcula el factorial (en ambos casos
el programa pedirá escribir el número sobre el que se calcula el sumatorio o el factorial). Tras
calcular el sumatorio o el factorial e indicar el resultado, el programa volverá a mostrar el menú y
así sucesivamente.
#include <stdio.h>
#include <conio.h>
int main(){
int seleccion;
int n,aux;
double res;
do{
/* Mostrar el menú*/
do{
printf("1 Salir\n2 Sumatorio\n");
printf("3 Factorial\n\nEscriba su opcion");
scanf("%d",&seleccion);
}while(seleccion!=1 && seleccion!=2 && seleccion!=3);
if(seleccion==2){/* Sumatorio */
printf("Escriba el numero sobre el que quiere el sumatorio");
scanf("%d",&n);
res=0;
for(aux=n;aux>=1;aux--) res+=aux;
printf("El sumatorio es: %.0lf\n");
printf("Pulse cualquier tecla para continuar\n\n\n",res);
getch();
}
else if(seleccion==3){ /* Factorial */
printf("Escriba el numero sobre el que quiere el factorial");
scanf("%d",&n);
res=1;
for(aux=n;aux>=1;aux--) res*=aux;
printf("El sumatorio es: %.0lf\n");
printf("Pulse cualquier tecla para continuar\n\n\n",res);
getch();
}
}while(seleccion!=1);
}
Ejercicio 11
Crear un programa que lea un número e indique su valor en la sucesión de Fibonacci (llamarle
Fibonacci).
Esta sucesión calcula su valor de la siguiente manera. Sólo es válido para números positivos, si el
número es un uno, la sucesión vale 1 si es dos, la sucesión vale 2. Para el resto la sucesión es la suma
de la sucesión de los dos números anteriores.
Es decir, para 7 el valor sería lo que valga la sucesión de 6 más la sucesión de cinco.
#include <stdio.h>
int main(){
int f1=1,f2=1;/*Valores anteriores*/
int n,cont;
double res=1; /* Resultado final */
do{
printf("Escriba el número: ");
scanf("%d",&n);
if(n<=0) printf("Numero no valido\n");
}while(n<=0);
for(cont=3;cont<=n;cont++){
res=f1+f2;
f1=f2;
f2=res;
}
printf("Resultado: %.0f",res);
}