Documente Academic
Documente Profesional
Documente Cultură
1.
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
Solucion:
#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];
}
2.
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.
Solucion:
#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");
3.
#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], int nVend
edor){
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 avin, as como mostrar qu asientos estn ocupados y libreas
actualmente.
El array tendr 25 filas y 4 columnas.
Solucion:
#include <conio.h>
#include <stdio.h>
#define
#define
#define
#define
N_FILAS 25
N_COLUMNAS 4
LIBRE 0
OCUPADO 1
}
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;
}
void cancelarAsiento(int a[][N_COLUMNAS]){
int fila, col;
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");
}
}
}
5.
Crear un programa que cree un array con 1000 letras maysculas aleatorias y
que cuenta cuntas veces aparece cada letra en el array.
Solucion:
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
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;
}
}
printf("La letra %c aparece %i veces\n",65+i,cont);
}
getch();
}
6.
Dado un vector de 10 elementos ={1, 2, 3, 4, 4, 7, 8, 9, 5, 4}, escribir un
programa en C (haciendo uso de puntero) que muestre las direcciones de
memoria de cada elemento del vector.
#include "stdio.h"
#include <conio.h>
int main(){
int *p, i;
int mat[10] ={1, 2, 3, 4, 4, 7, 8, 9, 5, 4};
p=mat;
7.