Hola! muy buen dia. Estoy haciendo una funcion que tiene que unir el valor de dos matrices en una sola.
Intente hacer dos ciclos for, para recorrer la matriz de 10 filas x 5 columnas, con un if, si el valor de la columna es menor a 5, que introduzca el primer arreglo, pero tengo problema al poner el sigguiente arreglo o matriz en la parte que resta del arreglo. Dejo la funcion que crea las matrices y la que las une. ¿como podria resolverlo?
Intente hacer dos ciclos for, para recorrer la matriz de 10 filas x 5 columnas, con un if, si el valor de la columna es menor a 5, que introduzca el primer arreglo, pero tengo problema al poner el sigguiente arreglo o matriz en la parte que resta del arreglo. Dejo la funcion que crea las matrices y la que las une. ¿como podria resolverlo?
Código (c) [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void menu();
void crearMatriz();
void suma();
void intersec();
void restaab();
void restaba();
void exclusion();
void buscar();
void destruir();
//numeros aleatorios diferentes
int o, p;
int n,m,j,i;
int matriz[5][5];
int matriz1[5][5];
//variable a agregar
//Funcion principal
int main()
{
menu();
return 0;
}
//Funcion menu, en donde mandamos a llamar las demas funciones dentro del switch
void menu(){
int opc;
int op=1;
do{
int opSwitch=0;
printf("0. Salir\n");
printf("1. Crear Conjuntos A y B\n");
printf("2. Union de A y B\n");
printf("3. Interseccion de A y B\n");
printf("4. Resta de A-B\n");
printf("5. Resta de B-A\n");
printf("6. Exclusion\n");
printf("7. Buscar numero en los conjuntos\n");
printf("8. Destruir Conjuntos\n");
printf("Selecciona una opcion:\n");
scanf("%d",&opSwitch);
switch(opSwitch){
case 0:{
op=0;
}
break;
case 1:
if(matriz[1][1]>0 && matriz1[1][1]>0){
printf("\nLa matriz debe ya tiene valores y debe ser destruida para poder ser creada nuevamente!");
printf("\nPara regresar al menu principal oprima 1");
scanf("%d",&opc);
switch(opc){
case 1:
menu();
break;
default: printf("\nOpcion invalida\n");
}
}
else{
crearMatriz();
}
break;
case 2:
if(matriz[1][1]==0 && matriz1[1][1]==0)
{
printf("\nLa matriz no tiene valores, debe ser creada primeramente!");
printf("\nPara regresar al menu principal oprima 1");
scanf("%d",&opc);
switch(opc){
case 1:
menu();
break;
default: printf("\nOpcion invalida\n");
}
}
else{
suma();
}
break;
case 3:
if(matriz[1][1]==0 && matriz1[1][1]==0)
{
printf("\nLa matriz no tiene valores, debe ser creada primeramente!");
printf("\nPara regresar al menu principal oprima 1 ==>:");
scanf("%d",&opc);
switch(opc){
case 1:
menu();
break;
default: printf("\nOpcion invalida\n");
}
}
else{
intersec();
}
break;
case 4:
if(matriz[1][1]==0 && matriz1[1][1]==0)
{
printf("\nLa matriz no tiene valores, debe ser creada primeramente!");
printf("\nPara regresar al menu principal oprima 1 ==>:");
scanf("%d",&opc);
switch(opc){
case 1:
menu();
break;
default: printf("\nOpcion invalida\n");
}
}
else{
restaab();
}
break;
case 5:
if(matriz[1][1]==0 && matriz1[1][1]==0)
{
printf("\nLa matriz no tiene valores, debe ser creada primeramente!");
printf("\nPara regresar al menu principal oprima 1 ==>:");
scanf("%d",&opc);
switch(opc){
case 1:
menu();
break;
default: printf("\nOpcion invalida\n");
}
}
else{
restaba();
}
break;
case 6:
if(matriz[1][1]==0 && matriz1[1][1]==0)
{
printf("\nLa matriz no tiene valores, debe ser creada primeramente!");
printf("\nPara regresar al menu principal oprima 1 ==>:");
scanf("%d",&opc);
switch(opc){
case 1:
menu();
break;
default: printf("\nOpcion invalida\n");
}
}
else{
exclusion();
}
break;
case 7:
if(matriz[1][1]==0 && matriz1[1][1]==0)
{
printf("\nLa matriz no tiene valores, debe ser creada primeramente!");
printf("\nPara regresar al menu principal oprima 1 ==>:");
scanf("%d",&opc);
switch(opc){
case 1:
menu();
break;
default: printf("\nOpcion invalida\n");
}
}
else{
buscar();
}
break;
case 8:
if(matriz[1][1]==0 && matriz1[1][1]==0)
{
printf("\nLa matriz no tiene valores, debe ser creada primeramente!");
printf("\nPara regresar al menu principal oprima 1 ==>:");
scanf("%d",&opc);
switch(opc){
case 1:
menu();
break;
default: printf("\nOpcion invalida\n");
}
}
else{
destruir ();
}
break;
default: printf("Opcion Invalida\n");
}
system("cls");
}while(op);
system("pause");
}
//crear y Llenar las matrices con valores aleatorios
void crearMatriz(){
srand(time(NULL));
//Par de ciclos que rellenan las matrices con valores aleatorios
for(i=0;i<5;i++){
for(n=0;n<5;n++){
matriz[i][n]= 1 + rand() % (51 - 1); //la matriz 1 es igual a los valores random entre 1 y 50
}
}
for(j=0;j<5;j++){
for(m=0;m<5;m++){
matriz1[j][m] = 1 + rand() % (51 - 1); //la matriz 2 es igual a los valores random entre 1 y 50
}
}
//Par de ciclos que muestran las dos matrices guardadas
printf("Las matrices guardadas son: \n\n");
printf("Matriz A\n");
for(i=0;i<5;i++){
for(n=0;n<5;n++){
printf("[%02d]",matriz[i][n]);
}
printf("\n");
}
printf("\n");
printf("Matriz B\n");
for(j=0;j<5;j++){
for(m=0;m<5;m++){
printf("[%02d]",matriz1[j][m]);
}
printf("\n");
}
system("pause");
}
//2. Unión de A y B
void suma(){
//ciclo que suma las dos matrices
int sumam[10][5];
for(o=0;o<10;o++){
for(p=0;p<5;p++){
if(o<5){
sumam[o][p]= matriz[o][p];
}
if(o>5){
for(o=5; o<10; o++){
for(p=0; p<5; p++){
sumam[o][p]= matriz1[o][p];
}
}
}
}
}
//Par de ciclos que muestran las dos matrices guardadas en la opcion 1
printf("\nLas matrices guardadas en la opcion 1, son: \n\n");
printf("Matriz A\n");
for(i=0;i<5;i++){
for(n=0;n<5;n++){
printf("[%02d]",matriz[i][n]);
}
printf("\n");
}
printf("\n");
printf("Matriz B\n");
for(j=0;j<5;j++){
for(m=0;m<5;m++){
printf("[%02d]",matriz1[j][m]);
}
printf("\n");
}
//ciclo que muestra la matriz resultante de la union
printf("\nLa matriz resultante de la suma de la Matriz A y la Matriz B, es: \n\n");
for(o=0;o<10;o++){
for(p=0;p<5;p++){
printf("[%02d]",sumam[o][p]);
}
printf("\n");
}
system("pause");