Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1.
Crear un programa que contenga una función llamada copiarArray ) que reciba dos
arrays y el tamaño de los mismos (deben de ser del mismo tamaño) y que consiga
copia en el segundo array el contenido del primero
Solucion:
#include <conio.h>
#include <stdio.h>
void copiarArray(int a[], int b[], int tamanio);
void escribirArray(int a[], int tamanio);
int main(){
/* Comprobación de la función*/
int uno[]={2,4,5,6,7,8,9,11};
int dos[8];
printf("Array uno:\n");
escribirArray(uno,8);
copiarArray(uno,dos,8);
printf("Array dos:\n");
escribirArray(dos,8);
getch();
}
/* Escribe el contenido de un array de enteros por pantalla */
void escribirArray(int a[], int tamanio){
int i;
for(i=0;i<tamanio;i++)
printf("%d ",a[i]);
printf("\n");
}
/* Copia el contenido del array b en el array a. Se supone
que ambos arrays son del mismo tamanio*/
void copiarArray(int a[], int b[], int tamanio){
int i;
for(i=0;i<tamanio;i++){
b[i]=a[i];
}
}
2.
Crear un programa llamado paresImpares que cree un array de 100 números aleatorios del 1 al
1000. Una vez creado, mostrar el contenido y después organizarlo de forma que estén juntos los
elementos pares y los impares. Después, volver a mostrar el array.
Solucion:
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#define TAM 100
void escribirArray(int a[], int tamanio);
int main(){
int a[TAM];
int par[TAM]={0};
int impar[TAM]={0};
int i,j;
srand(time(NULL));
/*Relleno inicial del array a*/
for(i=0;i<TAM;i++){
a[i]=rand()%100+1;
}
/* Escritura del contenido del primer array*/
printf("Primer array:\n");
escribirArray(a,TAM);
/* Grabación de los pares y los impares en los otros arrays*/
for(i=0;i<TAM;i++){
if(a[i]%2==0)
par[i]=a[i];
else
impar[i]=a[i];
}
/* Escritura del array par e impar*/
printf("\nPar:\n");
escribirArray(par,TAM);
printf("\nImpar:\n");
escribirArray(impar,TAM);
/* Mezcla de ambos arrays en el array a
y escritura del resultado final*/
3.
Crear un programa llamado vendedores que cree un array de 18 X 10 indicando que poseemos
una empresa de 18 vendedores cada uno de los cuales vende 10 productos.
El array almacena los ingresos obtenidos por cada vendedor en cada producto, de modo que un
menú permite almacenar los ingresos, revisar el total de cada vendedor y obtener los ingresos
totales
Solucion:
#include <conio.h>
#include <stdio.h>
#define N_VENDEDORES 18
#define N_PRODUCTOS 10
/* Función que muestra el menú del programa y retorna
el número de menú elegido por el usuario */
int mostrarMenu();
/* Función que calcula el total de todas las ventas*/
double mostrarTotal(double v[][N_PRODUCTOS]);
/* Función que calcula el total de ventas de un vendedor*/
double totalVendedor(double v[][N_PRODUCTOS], int
nVendedor);
int main(){
double ventas[N_VENDEDORES][N_PRODUCTOS]={0};
int resp=mostrarMenu();
int nvend, nprod;
double cantidad;
while(resp!=4){
switch(resp){
case 1:
printf("Numero de vendedor: ");scanf("%d",&nvend);
printf("Numero de producto: ");scanf("%d",&nprod);
printf("Cantidad ventida: ");scanf("%lf",&cantidad);
ventas[nvend][nprod]=cantidad;
break;
case 2:
printf("Numero de vendedor: ");scanf("%d",&nvend);
printf("Ventas total del vendedor %d=%.2lf\n",
nvend,totalVendedor(ventas,nvend));
break;
case 3:
printf("Total de ventas=%.2lf\n",
mostrarTotal(ventas));
break;
}
resp=mostrarMenu();
}
getch();
}
int mostrarMenu(){
int resp;
printf("\n\n");
printf("1) Añadir datos\n");
printf("2) Mostrar total de vendedor\n");
printf("3) Mostrar total de ventas\n");
printf("4) Salir\n");
scanf("%d",&resp);
return resp;
}
double mostrarTotal(double v[][N_PRODUCTOS]){
double resp=0;
int i,j;
for(i=0;i<N_VENDEDORES;i++){
for(j=0;j<N_PRODUCTOS;j++){
resp+=v[i][j];
}
}
return resp;
}
double totalVendedor(double v[][N_PRODUCTOS], int nVen
dedor){
double resp=0;
int i;
for(i=0;i<N_PRODUCTOS;i++){
resp+=v[nVendedor][i];
}
return resp;
}
4.
Crear un programa que mediante un menú admita reservar o cancelar asientos de un avión, así
como mostrar qué asientos están ocupados y libreas actualmente.
Solucion:
#include <conio.h>
#include <stdio.h>
#define N_FILAS 25
#define N_COLUMNAS 4
#define LIBRE 0
#define OCUPADO 1
/* Función que muestra el menú del programa y retorna
el número de menú elegido por el usuario */
int mostrarMenu();
void reservarAsiento(int a[][N_COLUMNAS]);
void cancelarAsiento(int a[][N_COLUMNAS]);
void mostrarOcupacion(int a[][N_COLUMNAS]);
int main(){
/* Los asientos inicialmente están libres*/
int asiento[N_FILAS][N_COLUMNAS]={0};
int resp=mostrarMenu();
while(resp!=4){
switch(resp){
case 1:
reservarAsiento(asiento);
break;
case 2:
cancelarAsiento(asiento);
break;
case 3:
mostrarOcupacion(asiento);
break;
}
resp=mostrarMenu();
}
getch();
}
int mostrarMenu(){
int resp;
printf("\n\n");
printf("1) Reservar Asiento\n");
printf("2) Cancelar Asiento\n");
printf("3) Mostrar Ocupacion\n");
printf("4) Salir\n");
scanf("%d",&resp);
return resp;
}
void reservarAsiento(int a[][N_COLUMNAS]){
int fila, col;
printf("Escriba la fila del asiento a reservar:
");scanf("%d",&fila);
printf("Escriba la columna del asiento a reservar:
");scanf("%d",&col);
for(i=0;i<N_FILAS;i++){
for(j=0;j<N_COLUMNAS;j++){
printf("fila %d, columna %d ",i,j);
if(a[i][j]==LIBRE) printf("Libre\n");
else printf("Ocupado\n");
}
}
}
5.
Crear un programa que cree un array con 1000 letras mayúsculas aleatorias y que cuenta cuántas
veces aparece cada letra en el array.
Solucion:
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
int main(){
char letra[TAM];
/* contadores*/
int i,j,cont;
srand(time(NULL));
for(i=65;i<=90;i++){
AaZ[i-65]=i;
for(i=0;i<TAM;i++){
de la letra A a Z */
letra[i]=rand()%26+65;
printf("Array inicial:\n");
escribirArray(letra,TAM);
aleatorias*/
for(i=0;i<26;i++){
cont=0;
for(j=0;j<TAM;j++){
if(AaZ[i]==letra[j]) cont++;
}
getch();
int i;
for(i=0;i<tamanio;i++){
printf("%c ",a[i]);
printf("\n");
6.
#include "stdio.h"
#include <conio.h>
int main(){
int *p, i;
p=mat;
for(i=0; i<=3; i++) {
printf("\tDirecci¢n: %x",p);
p++;
getch();
7.