Você está na página 1de 10

Ejercicios en lenguaje C.

Arrays
(Otros ejercicios)

Ejercicio 1. Copia de arrays


Crear un programa que contenga una funcin llamada copiarArray ) que reciba dos arrays y el tamao de los mismos (deben de ser del mismo tamao) y que consiga copia en el segundo array el contenido del primero Solucin

Ejercicio 2. Ordenar pares e impares

Crear un programa llamado paresImpares que cree un array de 100 nmeros aleatorios del 1 al 1000. Una vez creado, mostrar el contenido y despus organizarlo de forma que estn juntos los elementos pares y los impares. Despus, volver a mostrar el array Solucin

Ejercicio 3. Vendedores
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 Solucin

Ejercicio 4. Reserva de asientos


Crear un programa que mediante un men admita reservar o cancelar asientos de un avin, as como mostrar qu asientos estn ocupados y libreas actualmente. El array tendr 25 filas y 4 columnas Solucin

Ejercicio 5. Contar letras repetidas

Crear un programa que cree un array con 1000 letras maysculas aleatorias y que cuenta cuntas veces aparece cada letra en el array Solucin
e-mail:info@jorgesanchez.net

#include <conio.h> #include <stdio.h> void copiarArray(int a[], int b[], int tamanio); void escribirArray(int a[], int tamanio); int main(){ /* Comprobacin de la funcin*/
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]; }

Cerrar

#include <conio.h> #include <stdio.h> #include <stdlib.h> #define TAM 100 void escribirArray(int a[], int tamanio); int main(){
int int int int a[TAM]; par[TAM]={0}; impar[TAM]={0}; 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); /* Grabacin 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*/

j=0;/*j es el ndice del array a. Slo se mueve cuando se insertan en l nmeros*/ /*recorrido del array par e impar e insercin de los nmeros pares que contenga (todos los que sean distintos de 0) se aade al array a desde la primera posicin del mismo*/ for(i=0;i<TAM;i++){ if(par[i]!=0) { a[j]=par[i]; j++; } } /*recorrido del array impar e insercin de los nmeros impares que contenga desde la posicin en la que qued j*/ for(i=0;i<TAM;i++){ if(impar[i]!=0) { a[j]=impar[i]; j++; } } /*Resultado final*/ printf("\resultado final:\n"); escribirArray(a,TAM);

} /* fin main */

/* 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");

Cerrar

#include <conio.h> #include <stdio.h> #define N_VENDEDORES 18 #define N_PRODUCTOS 10 /* Funcin que muestra el men del programa y retorna el nmero de men elegido por el usuario */ int mostrarMenu(); /* Funcin que calcula el total de todas las ventas*/ double mostrarTotal(double v[][N_PRODUCTOS]); /* Funcin 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) Aadir 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], intnVe ndedor){


double resp=0; int i; for(i=0;i<N_PRODUCTOS;i++){ resp+=v[nVendedor][i]; } return resp;

Cerrar

#include <conio.h> #include <stdio.h> #define #define #define #define N_FILAS 25 N_COLUMNAS 4 LIBRE 0 OCUPADO 1

/* Funcin que muestra el men del programa y retorna el nmero 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 estn 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);

if(a[fila][col]==OCUPADO) printf("Ese asiento ya est reservado\n"); else { a[fila][col]=OCUPADO; printf("Reserva realizada\n"); }

void cancelarAsiento(int a[][N_COLUMNAS]){


int fila, col; printf("Escriba la fila del asiento a cancelar: ");scanf("%d",&fila); printf("Escriba la columna del asiento a cancelar: ");scanf("%d",&col); if(a[fila][col]==LIBRE) printf("Ese asiento no est ocupado\n"); else { a[fila][col]=LIBRE; printf("Cancelacin realizada\n"); }

void mostrarOcupacion(int a[][N_COLUMNAS]){


int i,j; 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"); } }

Cerrar #include <conio.h> #include <stdio.h> #include <stdlib.h> #define TAM 1000 void escribirArray(char a[], int tamanio);

int main(){
char letra[TAM]; /* Array que contendr las letras de la A a la Z*/ char AaZ[26]; /* contadores*/ int i,j,cont; srand(time(NULL)); /* Relleno del array de letras */ for(i=65;i<=90;i++){ AaZ[i-65]=i; } /*Relleno inicial del array aleatorio*/ for(i=0;i<TAM;i++){ /*genera caracteres del ASCII 65 al 90, de la letra A a Z */ letra[i]=rand()%26+65; } /* Escritura del contenido del primer array*/ printf("Array inicial:\n"); escribirArray(letra,TAM); /* El bucle recorre el array que contiene las letras de la A a la Z y cuenta cada vez que aparece cada letra en el array de letras aleatorias*/ for(i=0;i<26;i++){ cont=0; for(j=0;j<TAM;j++){ if(AaZ[i]==letra[j]) cont++; } printf("La letra %c aparece %i veces\n",65+i,cont); } getch();

/* Escribe el contenido de un array de enteros por pantalla */ void escribirArray(char a[], int tamanio){
int i; for(i=0;i<tamanio;i++){ printf("%c ",a[i]); } printf("\n");

Cerrar

Você também pode gostar