•Operaciones con arrays (Vectores)•
- freitesvalentina
- 19 ago 2015
- 3 Min. de lectura
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:
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:
#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*/
j=0;/*j es el índice del array a. Sólo se mueve cuando se insertan en él números*/
/*recorrido del array par e impar e inserción de los números pares que contenga (todos los que sean distintos de 0) se añade al array a desde la primera posición del mismo*/
for(i=0;i<TAM;i++){
if(par[i]!=0) {
a[j]=par[i]; j++;
}
}
/*recorrido del array impar e inserción de los números impares que contenga desde la posición 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-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:
/* 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], intnVendedor){
double resp=0;
int i;
for(i=0;i<N_PRODUCTOS;i++){
resp+=v[nVendedor][i];
}
return resp;
}
Comments