Sei sulla pagina 1di 18

Laboratorios de Computacin

Salas A & B
Profesor: Antonio Amed Leones Viloria

Asignatura: Fundamentos de
Programacin

Grupo: 0018

N. de Prctica: Prctica Nmero 11


Arreglos unidimensionales y
multidimensionales

Alumno: Pedroza Vizcaya Adrian

Semestre: 2017-2

Fecha de Entrega: ------------

Observaciones:

Calificacin:
1. Escriba las declaraciones apropiadas para:

a) un arreglo de enteros con 6 renglones y seis columnas

#include <stdio.h>
int main (int argc, char const* arrgv [])
{
int matriz [6][6]={1, 2, 3, 4, 6, 7,
8, 9, 10, 11, 12, 13,
14, 15, 16, 17, 18, 19,
20, 21, 22, 23, 24, 25,
26, 27, 28, 29, 30, 31,
32, 33, 34, 35, 36, 37} i, j;

for (i=0; 1<6; i++){


for (j=0, j<6, j++);
printf ("la posicin %d, %d vale %d\n" i, i, matriz[i][j], matriz [i][j]);

}
return 0;
}

b) un arreglo de caracteres con 15 renglones y 7 columnas

#include <stdio.h>
int main (int argc, char const* arrgv [])
{
int matriz [15][7]={1, 2, 3, 4, 6, 7, 8,
9, 10, 11, 12, 13, 14, 15,
16, 17, 18, 19, 20, 21, 22,
23, 24, 25, 26, 27, 28, 29,
30, 31, 32, 33, 34, 35, 36,
37, 38, 39, 40, 41, 42, 43,
44, 45, 46, 47, 48, 49, 50,
51, 52, 53, 54, 55, 56, 57,
58, 59, 60, 61, 62, 63, 64,
65, 66, 67, 68, 69, 70, 71,
72, 73, 74, 75, 76, 77, 78,
79, 80, 81, 82, 83, 84, 85,
86, 87, 88, 89, 90, 91, 92,
93, 94, 95, 96, 97, 98, 99,
100, 101, 102, 103, 104, 105, 106} i, j;

for (i=0; 1<7; i++){


for (j=0, j<15, j++);
printf ("la posicin %d, %d vale %d\n" i, i, matriz[i][j], matriz [i][j]);

}
return 0;
}

c) un arreglo de n umerosde punto flotante con 16 renglones y 8columnas

#include <stdio.h>
int main (int argc, char const* arrgv [])
{
float matriz [16][8]={1, 2, 3, 4, 6, 7, 8,
9, 10, 11, 12, 13, 14, 15, 16,
17, 18, 19, 20, 21, 22,23, 24,
25, 26, 27, 28, 29, 30, 31, 32,
33, 34, 35, 36, 37, 38, 39, 40,
41, 42, 43, 44, 45, 46, 47, 48,
49, 50, 51, 52, 53, 54, 55, 56,
57, 58, 59, 60, 61, 62, 63, 64,
65, 66, 67, 68, 69, 70, 71, 72,
73, 74, 75, 76, 77, 78, 79, 80,
81, 82, 83, 84, 85, 86, 87, 88,
89, 90, 91, 92, 93, 94, 95, 96,
97, 98, 99, 100, 101, 102, 103, 104,
105, 106,, 107, 108, 109, 110, 111, 112} i, j;

for (i=0; 1<16; i++){


for (j=0, j<8, j++);
printf ("la posicin %d, %d vale %d\n" i, i, matriz[i][j], matriz [i][j]);

}
return 0;
}

2.Escribir un programa en C que sume elementos equivalentes de arreglos de dos


dimensiones nombrados primero y segundo. Ambos arreglos deben tener dos las y
tres columnas. Por ejemplo, el elemento
1 de [1][2] del arreglo resultante debe ser la suma de primero[1][2] y segundo[1][2].
Los arreglos primero y segundo deben ser inicializados como sigue:
PRIMERO SEGUNDO
-------- -------
16 18 23 24 52 77
54 91 11 16 19 59

#include<stdio.h>

int main()

int primero[2][3]={16,18,23,54,91,11},i,j;

int segundo[2][3]={24,52,77,16,19,59},suma[2][3];

printf("Los elementos de primero son:\n");

for(i=0;i<2;i++)
{

for(j=0;j<3;j++)

if(i==1 && j==0) printf("\n);

printf("%i ",primero[i][j]);

printf("\n\n");

printf("Los elementos de segundo son:\n");

for(i=0;i<2;i++)

for(j=0;j<3;j++)

if(i==1 && j==0) printf("\n");

printf("%i ",segundo[i][j]);

printf("\n\n");

printf("Los elementos de suma son:\n);

for(i=0;i<2;i++)
{

for(j=0;j<3;j++)

suma[i][j]=(primero[i][j])+(segundo[i][j]);

if(i==1 && j==0) printf("\n);

printf("%i ",suma[i][j]);

printf("\n\n");

return 0;

3. Escriba un programa en C que detecte y muestre el valor m aximo de


una matriz bidimensional de enteros. La matriz debe ser declarada
de cuatro por cinco enteros e inicializada con estos datos:
16, 22, 99, 4, 18, -258, 4, 101, 5, 98, 105, 6, 15, 2, 45, 33,
88, 72, 16, 3

#include<stdio.h>
int main()
{
int a[4][5]={16,22,99,4,18,-258,4,101,5,98,105,6,15,2,45,33,88,72,16,3};
int i,j,max=a[0][0],min=a[0][0];
for(i=0;i<4;i++)
{
for(j=0;j<5;j++)
if(a[i][j]>max) max=a[i][j];
if(a[i][j]<min) min=a[i][j];
}
printf("El valor maximo de la matriz es: %i\n",max);
printf("El valor minimo de la matriz es: %i\n",min);
return 0;
}
4. Modique el programa escrito en el ejercicio anterior, de modo que tambin
muestre el mximo y los subndices de la y columna del valor.

#include<stdio.h>
int main()
{
int a[4][5]={16,22,99,4,18,-258,4,101,5,98,105,6,15,2,45,33,88,72,16,3};
int i,j,max=a[0][0],min=a[0][0],fila_max,columna_max,fila_min,columna_min;
for(i=0;i<4;i++)
{
for(j=0;j<5;j++)
{
if(a[i][j]>max)
{
max=a[i][j];
fila_max=i; columna_max=j;
}
if(a[i][j]<min
)
{
min=a[i][j];
fila_min=i; columna_min=j;
}
}
}
printf("\nEl valor maximo de la matriz es: %i\n",max);
printf("Este valor se encuentra en la posicion:\n%i,%i\n",fila_max,columna_max);
printf("\nEl valor minimo de la matriz es: %i\n",min);
printf("Este valor se encuentra en la posicion:\n%i,%i\n",fila_min,columna_min);
return 0;
}
5. Escriba un programa en C que lea 10 numeros por teclado, los almacene en un
array y los ordene de forma ascendente.

#include<stdio.h>
int main()
{
int t,i,j,a[10],b[10];printf("Ingresa 10 numeros separados:\n");
for(i=0;i<10;i++)
scanf("%i",&b[i]);
for(i=0;i<10;i++)
a[i]=b[i];
for(i=0;i<10;i++)
{
for(j=0;j<9;j++)
{
if(a[j]>a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
printf("\nLos elementos del arreglo de 10 numeros son:\n");
for(i=0;i<10;i++)
printf("%i ",b[i]);
printf("\n\nLos elementos en forma ascendente:\n");
for(i=0;i<10;i++)
printf("%i ",a[i]);
return 0;
}
6. Escriba un programa en C que rellene un array con 20 numeros y luego busque un
numero concreto.

#include<stdio.h>
int main()
{
int a[20],i,j=1,n;
char res='s';
printf("Ingresar 20 numeros separados: \n");
for(i=0;i<20;i++)
scanf("%i",&a[i]);
while(res=='s' || res=='S')
{
printf("\n cual numero busca\n");
scanf("%i",&n);
for(i=0;i<20;i++)
{
if(a[i]==n)
{
printf("\nEl numero %i se encuentra en la posicion %i.\n",n,i);
j=0;
}
}
if(j==1) printf("\nEl numero %i no se encuentra en el arreglo\n",n);
printf("\nDeseas buscar otro numero[s/n]: ");
scanf("%s",&res);
if(res=='n' || res=='N') break;
}
return 0;
}
7. Escribir un programa en C que utilice una matriz de 1000 elementos para
determinar e imprimir los numeros primos entre 1 y 999. Ignorar elemento 0 de la
matriz. Un numero entero primo es cualquier numero entero mayor que 1 que se
puede dividir de manera uniforme solamente por s mismo y 1. La criba de
Eratostenes es un metodo de busqueda de numeros primos. Eso funciona como
sigue:

#include<stdio.h>
int main()
{
int a[1000],i,z=-4;
printf("Los numeros primos entre el 1 al 999:\n");
for(i=1;i<1000;i++)
{
a[i]=i;
if(a[i]==2 || a[i]==3 || a[i]==5 || a[i]==7)
printf("\t%i ",a[i]); if(i==5) printf("\n");
if(a[i]%2!=0)
if(a[i]%3!=0)
if(a[i]%5!=0)
if(a[i]%7!=0)
{
if(z%4==0) printf("\n");
printf("\t%i ",a[i]);
z++;
}
if(i==999) printf("\n");
}
return 0;
}
8. Escriba un programa que imprima un cuadrado magico de nn. Un cuadrado
magico es aquel en el que la suma en renglones, columnas y sus diagonales son las
mismas y los posibles numeros son 1,2,...,n2. El usuario debe especicar el valor de
n.3

#include<stdio.h>
int main()
{
int n=0,suma,i,j,aux;
printf("Cuadrado magico:\n");
while(n<3)
{
printf("Ingresar valor de las 'n' filas y columnas: ");
scanf("%i",&n);
}
int a[n][n],b[n],c[n];
suma=(n*((n*n)+1))/2;
printf("La suma de los numeros debe ser igual a %d.\n\n",suma);
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
a[i][j]=0;
}
for(i=0;i<n;i++)
{
b[i]=0; c
[i]=0;
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
aux=0;
printf("Ingresar valor [%d][%d]: ",i,j);
scanf("%d",&aux);
a[i][j]=aux;
}
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
b[i]=b[i]+a[i][j];
c[i]=c[i]+a[j][i];
}
}
printf("the magic box is:\n\n");
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
printf("%d\t",a[i][j]);
}
printf("\n\n");
}
return 0;
}

Potrebbero piacerti anche