hola gente de forosdelweb espero su consejo he aqui el programa:
Código C++:
Ver original#include<stdio.h>
#include<stdlib.h>
int menu();
void leerv(int t,int *a);
void sumarv(int t,int *a);
void imprv(int t,int *a);
void leerm(int f,int c,int **a);
void imprm(int f,int c,int **a);
void sumam(int f,int c,int **a,int **b);
void multim(int m,int s,int **b,int **d,int **e);
int menu(){
int x;
do{
printf(" 1.- Suma de Vectores\n"); printf(" 2.- Suma de Matrices\n"); printf(" 3.- Multiplicacion de Matrices\n"); printf(" Elige una opcion => "); }while(x<1&&x>4);
return x;
}
void leerv(int t,int *a){
for(int i=0;i<t;i++){
}
}
void sumarv(int t,int *a,int *b){
for(int i=0;i<t;i++){
a[i]=a[i]+b[i];
}
}
void imprv(int t,int *a){
for(int i=0;i<t;i++){
}
}
void leerm(int f,int c,int **a){
for(int i=0;i<f;i++){
for(int j=0;j<c;j++){
}
}
}
void imprm(int f,int c,int **a){
for(int i=0;i<f;i++){
for(int j=0;j<c;j++){
}
}
}
void sumam(int f,int c,int **a,int **b){
for(int i=0;i<f;i++){
for(int j=0;j<c;j++){
a[i][j]=a[i][j]+b[i][j];
}
}
}
void multim(int m,int n,int s,int **b,int **d,int **e){
for(int i=0;i<m;i++){
for(int j=0;j<s;j++){
for(int k=0;k<n;k++){
e[i][j]=e[i][j]+b[i][k]*d[k][j];
}
}
}
}
main(){
int c,f,i,j,x,t,m,n,q,s;
int *a,**b,**e,*d,**g;
x=menu();
switch(x){
case 1: printf("\nDame el tamaño del Vector = "); a
=(int *)malloc(sizeof(int)*t
); d
=(int *)malloc(sizeof(int)*t
); printf("\nElementos del Vector A\n"); leerv(t,a);
printf("\nElementos del Vector B\n"); leerv(t,d);
imprv(t,a);
imprv(t,d);
sumarv(t,a,d);
imprv(t,a);
break;
case 2: printf("\nDame el Numero de Filas de la Matriz = "); printf("\nDame el Numero de Columnas de la Matriz = "); b
=(int **)malloc(sizeof(int *)*f
); e
=(int **)malloc(sizeof(int *)*f
); for(j=0;j<c;j++){
b
[j
]=(int *)malloc(sizeof(int)*c
); e
[j
]=(int *)malloc(sizeof(int)*c
); }
printf("\nElementos de la Matriz A\n"); leerm(f,c,b);
printf("\nElementos de la Matriz B\n"); leerm(f,c,e);
imprm(f,c,b);
imprm(f,c,e);
sumam(f,c,b,e);
imprm(f,c,b);
break;
case 3: do{
printf("Numero de Filas de la Matriz A = "); printf("Numero de Columnas de la Matriz A = "); printf("Numero de Filas de la Matriz B = "); printf("Numero de Columnas de la Matriz B = "); }while(n!=q);
b
=(int **)malloc(sizeof(int *)*m
); e
=(int **)malloc(sizeof(int *)*q
); g
=(int **)malloc(sizeof(int *)*m
); for(j=0;j<n;j++){
b
[j
]=(int *)malloc(sizeof(int)*n
); }
for(j=0;j<s;j++){
e
[j
]=(int *)malloc(sizeof(int)*s
); g
[j
]=(int *)malloc(sizeof(int)*s
); }
for(i=0;i<m;i++){
for(j=0;j<s;j++){
g[i][j]=0;
}
}
printf("\nElemetos de la Matriz A\n"); leerm(m,n,b);
printf("\nElementos de la Matriz B\n"); leerm(q,s,e);
multim(m,n,s,b,e,g);
imprm(m,s,g);
break;
}
}
La duda que tengo es cuando pongo los siguientes datos:
1.- elijo la opcion
3
2.- en numero de filas de la matriz A pongo
2
3.- en numero de columnas de la matriz A pongo
3
4.- en numero de filas de la matriz B pongo
3
5.- en numero de columnas de la matriz B pongo
2
y luego me pide los datos
Elementos de la matriz A
[0][0] = 1
[0][1] = 1
[0][2] = 1
[1][0] = 1
[1][1] = 1
[1][2] = 1
Elementos de la matriz B
[0][0] = 2
[0][1] = 2
[1][0] = 2
[1][0] = 2
[1][1] = 2
[2][0] = 2
luego de dar intro el programa pone una pantalla de
"El programa dejo de funcionar". No entiendo porque deja de funcionar. Le pregunte a mi profe y dice que no debe de hacer eso el llama a eso "romperse" pero no me dice en donde esta mal y lo revise pero no veo un error espero poder contar con su ayuda