Ejercicios de matrices
1.-Sumar los elementos de una matriz que están en la diagonal.
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a[5][5]={' '},i,j,suma=0;
for( i=0; i < 5; i++)
{
for( j=0; j < 5; j++)
{
a[i][j]=random()%101;
printf("%4d",a[i][j]);
}
printf("\n");
}
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
if(i==j)
{
suma=suma+a[i][j];
}
}
}
printf("\nLa suma de la diagonal es %d\n",suma);
}
2.-Intercambiar los elementos de una matriz. Los de la fila i con los
de la fila j.
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a[6][6]={' '},b[5][5]={' '},i,j;
for( i=0; i < 6; i++)
{
for( j=0; j < 6; j++)
{
a[i][j]=random()%101;
printf("%4d",a[i][j]);
}
printf("\n");
}
printf("\n");
for( i=0; i < 6; i++)
{
for( j=0; j < 6; j++)
{
b[i][j]=a[j][i];
printf("%4d",b[i][j]);
}
printf("\n");
}
}
2b.-Mover una posicion a la derecha y el ultimo sea el primero filas
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a[6][6]={' '},b[6][6]={' '},i,j,temporal[6];
for( i=0; i < 6; i++)
{
for( j=0; j < 6; j++)
{
a[i][j]=random()%101;
printf("%4d",a[i][j]);
}
printf("\n");
}
printf("\n");
for( i=0; i < 6; i++)
{
for( j=0; j < 6; j++)
{
if (j==5)
{
b[i][0]=a[i][j];
}
else
{
b[i][j+1]=a[i][j];
}
}
}
for( i=0; i < 6; i++)
{
for( j=0; j < 6; j++)
{
printf("%4d",b[i][j]);
}
printf("\n");
}
printf("\n");
}
3.-Sumar , restar y hacer el producto de dos matrices.
#include<stdio.h>
#include <time.h>
#include <string.h>
int i,j,k,temporal,a[6][6],b[6][6],c[6][6];
char operacion[50];
main()
{
srand (time(NULL));
printf("\t\nEste programa Suma dos matrices de 6x6\n");
for( i=0; i < 6; i++)
{
for( j=0; j < 6; j++)
{
a[i][j]=rand()%11;
printf("%4d",a[i][j]);
}
printf("\n");
}
printf("\n");
for( i=0; i < 6; i++)
{
for( j=0; j < 6; j++)
{
b[i][j]=rand()%11;
printf("%4d",b[i][j]);
}
printf("\n");
}
do
{
do
{
printf("m=multiplicación, r=resta, s=suma, e=salir: ");
fgets(operacion,50,stdin);
operacion[strlen(operacion)-1]= 0;
}
while(strcmp(operacion,"m") !=0 && strcmp(operacion,"r") !=0 && strcmp(operacion,"s") !=0 && strcmp(operacion,"e") !=0);
if(strcasecmp(operacion,"s")==0)
{
printf("\nEl resultado de la suma de ambas Matices es:\n\n");
for(i=0;i<6;i++)
{
for(j=0;j<6;j++)
{
c[i][j]=a[i][j]+b[i][j];
printf("%6d",c[i][j]);
}
printf("\t\t\t\n");
}
}
else if(strcasecmp(operacion,"r")==0)
{
printf("\nEl resultado de la resta de ambas Matices es:\n\n");
for(i=0;i<6;i++)
{
for(j=0;j<6;j++)
{
c[i][j]=a[i][j]-b[i][j];
printf("%6d",c[i][j]);
}
printf("\t\t\t\n");
}
}
else if(strcasecmp(operacion,"m")==0)
{
printf("\nEl resultado de la multiplicacion de ambas Matices es:\n\n");
for(i=0;i<6;i++)
{
for(j=0;j<6;j++)
{
temporal = 0 ;
for (k = 0 ; k < 6 ; k++ )
{
temporal += (a[i][k] * b[k][j]);
}
c[i][j] = temporal ;
printf("%6d",c[i][j]);
}
printf("\t\t\t\n");
}
}
}
while(strcmp(operacion,"e") !=0);
}
5.-Encontrar el mayor y el menor de una matriz así como las
posiciones que ocupa.
#include <stdio.h>
#include <time.h>
int main()
{
int a[5][5]={' '},i,j,resultado[6];
srand (time(NULL));
for( i=0; i < 5; i++)
{
for( j=0; j < 5; j++)
{
a[i][j]=random()%101;
printf("%4d",a[i][j]);
if (i==0 && j==0)
{
resultado[0]=a[i][j];
resultado[1]=i;
resultado[2]=j;
resultado[3]=a[i][j];
resultado[4]=i;
resultado[5]=j;
}
else if (resultado[0]<a[i][j])
{
resultado[0]=a[i][j];
resultado[1]=i;
resultado[2]=j;
}
else if (resultado[3]<a[i][j])
{
resultado[3]=a[i][j];
resultado[4]=i;
resultado[5]=j;
}
}
printf("\n");
}
printf("\nEl número mayor es %d posición de fila %d y la columna %d\n",resultado[0],resultado[1]+1,resultado[2]+1);
printf("\nEl número menor es %d posición de fila %d y la columna %d\n",resultado[3],resultado[4]+1,resultado[5]+1);
}
6.-Leer una palabra y decidir si és palíndroma.
#include <stdio.h>
#include <string.h>
int main()
{
char palabra[20];
int i, j;
int palindromo = 1;
printf("Escribe una cadena: ");
fgets(palabra,50,stdin);
palabra[strlen(palabra)-1]= 0;
j=strlen(palabra)-1;
for(i=0; i
printf("Comprobando %c==%c\n", palabra[i], palabra[j]);
if (palabra[i] != palabra[j] ) {
palindromo = 0;
break;
}
}
if (palindromo)
printf("\nEs un palíndrimo.\n");
else
printf("\nNo es un palíndrimo.\n");
return (0);
}
7.-Crear una matriz de 20 elementos de tipo numérico y de nombre
pares. Cargar la matriz con los 20 primeros números pares. Mostrar el
contenido de la matriz en pantalla. Ordenar de menor a mayor
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int a[4][5]={' '},i,j,x,y,menor;
srand (time(NULL));
for( i=0; i < 4; i++)
{
for( j=0; j < 5; j++)
{
do
{
a[i][j]=random()%40+1;
}
while (a[i][j]%2!=0);
printf("%4d",a[i][j]);
}
printf("\n");
}
printf("\n");
for(i=0; i<4; i++)
{
for(j=0; j<5; j++)
{
for(x=0; x<4;x++)
{
for(y=0; y<5; y++)
{
if(a[i][j]<a[x][y])
{
menor=a[i][j];
a[i][j]=a[x][y];
a[x][y]=menor;
}
}
}
}
}
for(i=0; i<4; i++)
{
for(j=0; j<5; j++)
{
printf("%4d",a[i][j]);
}
printf("\n");
}
}
8.-Crear una matriz de 30 elementos de tipo numérico y rellenarlo
con valores positivos , negativos y ceros. Contar el número de
valores positivos ,negativos y ceros. Mostrar los resultados.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int a[5][6]={' '},i,j,p=0,n=0,c=0;
srand (time(NULL));
for( i=0; i < 5; i++)
{
for( j=0; j < 6; j++)
{
a[i][j]=random()%201-100;
printf("%4d",a[i][j]);
if (a[i][j]==0){c++;}
if (a[i][j]<0){n++;}
if (a[i][j]>0){p++;}
}
printf("\n");
}
printf("\nLos positivos son %d, los negativos son %d y los ceros son %d\n", p, n, c);
}
9.Rellenar una matriz con elementos que sean la suma de su fila y su
columnna.
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a[5][5]={' '},i,j;
for( i=0; i < 5; i++)
{
for( j=0; j < 5; j++)
{
a[i][j]=j+i;;
printf("%4d",a[i][j]);
}
printf("\n");
}
}
No hay comentarios:
Publicar un comentario