Código
#include<iostream> #include<conio2.h> #include<stdio.h> using namespace std; //parametrización void LLENAR_f(int [3][100],int ,int ,int ); void SUAMAR_f(int [3][100]); void MULTIPLICAR_f(int [3][100]); void REDIMENCIONAR_f(int [3][100]); void PROM_FILA_f(int[3][100]); void CANTIDAD_IMPARES_f(int [3][100]); int main() { int MDlistrip[3][100]={0}; float R[3][100]={0}; int NF,NC,ND; short op; cout<<"\nIngrese numero de Filas"; cin>>NF; cout<<"\nIngrese numero de Columnas"; cin>>NC; cout<<"\nIngrese numero de Datos"; cin>>ND; LLENAR_f(MDlistrip,NF,NC,ND); do { gotoxy(15,1); cout<<"Menu Principal"; cout<<"\nSumar dos matrices dispersas 1:"; cout<<"\nMultiplicar dos matrices dispersas 2:"; cout<<"\nEncontrar la traspuesta de ambas matrices dispersas 3:"; cout<<"\nMostrar el promedio de cada fila 4:"; cout<<"\nMostrar la cantidad de impares de cada columna 5:"; cout<<"\nMostrar las matrices dispersas 6:"; cout<<"\nIngrese dato del menu:"; cin>>op; switch(op) { case 1 : SUAMAR_f(MDlistrip) ;break; case 2 : MULTIPLICAR_f(MDlistrip);break; // case 3 : TRASPUESTAS_f();break; case 4 : PROM_FILA_f(MDlistrip);break; case 5 : CANTIDAD_IMPARES_f(MDlistrip);break; case 6 : ;break; } }while(op>=1||op<=6); system("PAUSE"); return EXIT_SUCCESS; } void LLENAR_f(int MDlistrip[3][100],int NF,int NC,int ND) { float dat; int f,c; short i,j; MDlistrip[0][0]=NF; MDlistrip[0][1]=NC; MDlistrip[0][3]=ND; for(i=1;i<=MDlistrip[0][3]+1;i++) { cout<<"\nIngrese Filas"; cin>>MDlistrip[i][0]; cout<<"\nIngrese Columnas"; cin>>MDlistrip[i][1]; cout<<"\nIngrese Dato"; cin>>MDlistrip[i][2]; } } void SUAMAR_f(int MDlistrip[3][100]) { int MDlistripB[3][100]={0}; int MDlistripR[3][100]={0}; int NF,NC,ND; short k=1; cout<<"\nIngrese numero de Filas de la matriz B"; cin>>NF; cout<<"\nIngrese numero de Columnas de la matriz B"; cin>>NC; cout<<"\nIngrese numero de Datos de la matriz B"; cin>>ND; LLENAR_f(MDlistripB,NF,NC,ND); while ((k<= MDlistripB[0][2]+1)&&(k<=MDlistrip[0][2]+1)) { if((MDlistripB[k][0]==MDlistrip[k][0])&&(MDlistripB[k][1]==MDlistrip[k][1])) { MDlistripR[k][0]=MDlistrip[k][0]; MDlistripR[k][0]=MDlistrip[k][0]; MDlistripR[k][2]=MDlistrip[k][2]+MDlistripB[k][2]; k++; } else { if(MDlistrip[k][0]<MDlistripB[k][0]) { MDlistripR[k][0]=MDlistripB[k][0]; MDlistripR[k][0]=MDlistripB[k][1]; MDlistripR[k][0]=MDlistripB[k][2]; k++; MDlistripR[k][0]=MDlistripB[k][0]; MDlistripR[k][0]=MDlistripB[k][1]; MDlistripR[k][0]=MDlistripB[k][2]; k++; } else if (MDlistrip[k][0]>MDlistripB[k][0]) { MDlistripR[k][0]=MDlistripB[k][0]; MDlistripR[k][0]=MDlistripB[k][1]; MDlistripR[k][0]=MDlistripB[k][2]; k++; MDlistripR[k][0]=MDlistripB[k][0]; MDlistripR[k][0]=MDlistripB[k][1]; MDlistripR[k][0]=MDlistripB[k][2]; k++; } } } } void MULTIPLICAR_f(int MDlistrip[3][100]) { int MDlistripB[3][100]={0}; int MDlistripR[3][100]={0}; int NF,NC,ND; short k=1; cout<<"\nIngrese numero de Filas de la matriz B"; cin>>NF; cout<<"\nIngrese numero de Columnas de la matriz B"; cin>>NC; cout<<"\nIngrese numero de Datos de la matriz B"; cin>>ND; LLENAR_f(MDlistripB,NF,NC,ND); if ((MDlistripB[0][0]==MDlistripB[0][0])&&(MDlistripB[0][0]==MDlistripB[0][0])) { if((MDlistripB[k][0]==MDlistrip[k][0])&&(MDlistripB[k][1]==MDlistrip[k][1])) { MDlistripR[k][0]=MDlistrip[k][0]; MDlistripR[k][0]=MDlistrip[k][0]; MDlistripR[k][2]=MDlistrip[k][2]*MDlistripB[k][2]; k++; } else { } } else { cout<<"\nNo se puede multiplicar las matrices"; } } void REDIMENCIONAR_f(int MDlistripR[3][100]) { int k; float aux[3][100]; for (k=0;k<=(MDlistripR[0][2]+1);k++) { aux[k][0]=MDlistripR[k][0]; aux[k][1]=MDlistripR[k][1]; aux[k][2]=MDlistripR[k][2]; } } void PROM_FILA_f(int MDlistrip[3][100]) { int f; short i,k; float prom,ac=0; cout<<"\nQue fila desea sacar el promedio?:\t"; cin>>f; for (i=1;i<=(MDlistrip[0][2]+1);i++) { if(MDlistrip[i][0]=f) { for(k=i;k<=f;k++) { ac=ac+MDlistrip[i][2]; } } } prom=ac/MDlistrip[0][1]; cout<<prom; } void CANTIDAD_IMPARES_f(int MDlistrip[3][100]) { int c, ac=0; short i,k; cout<<"\nQue columna quiere ver impares?:\t"; cin>>c; for (i=1;i<=(MDlistrip[0][2]+1);i++) { if(MDlistrip[i][1]=c) { for(k=i;k<=c;k++) { if(MDlistrip[k][2] %2 !=0 ) { ac=ac+1; } } } } cout<<"\nHay",ac,"impares en la columna",c; } void MOSTRAR_f(int MDlistrip[3][100]) { short k; for (k=0;k<=(MDlistrip[0][2]+1);k++) { cout<<MDlistrip[k][0],"\n"; cout<<MDlistrip[k][1],"\n"; cout<<MDlistrip[k][2],"\n"; } }