Autor
|
Tema: Ayuda por favor para terminar este programa (Leído 1,755 veces)
|
Faceless
Desconectado
Mensajes: 8
|
Muy buenas necesito ayuda para terminar con este programa, me quedé estancado en las ultimas 2 funciones que no se bien como hacerlas. Como verán , el programa almacena valores ingresados por el usuario en forma de matriz y luego los imprime en pantalla. Me quedan por hacer las siguientes funciones.. void sumas(int MATRIZ[N][M],int Suma[N]):Esta función toma como argumentos una matriz tamaño NxM y un vector de longitud N. Se debe calcular la sumatoria de cada fila y almacenarlo en el vector Suma en la posición cuyo índice sea el mismo que la fila en cuestión. int busca_mayor(int Suma[N],int &fila):Esta función toma como argumentos un vector de tamaño N por referencia la variables fila. Se debe buscar el máximo valor del vector y devolverlo como valor de retorno, a su vez se debe almacenar en fila la posición del máximo valor. #include <iostream> #include <iomanip> using namespace std;
const int N=3; const int M=4; int f,c;
void mostrar_matriz(int [N][M]); void sumas(int [N][M],int [N]); int busca_mayor(int [N],int &);
int main() { int MATRIZ[N][M]; for(f=0;f<N;f++) { for(c=0;c<M;c++) { cout<<"Ingrese el elemento ("<<f<<" , "<<c<<") ="; cin>>MATRIZ[f][c]; while(MATRIZ[f][c]<0) { cout<<"Los valores deben ser positivos\n"<<endl; cout<<"Vuelva a ingresar el elemento ("<<f<<" , "<<c<<") ="; cin>>MATRIZ[f][c]; cout<<"\n\n"; } } }
mostrar_matriz(MATRIZ);
system("pause"); return 0; }
void mostrar_matriz(int MATRIZ[N][M]) { cout<<"La matriz ingresada es: "<<endl; for(f=0;f<N;f++) { cout<<endl; for(c=0;c<M;c++) { cout<<setw(4)<<MATRIZ[f][c]; } } cout<<"\n\n"; } void sumas(int MATRIZ[N][M],int Suma[N]) { }
int busca_mayor(int Suma[N],int &fila) { }
|
|
« Última modificación: 1 Mayo 2016, 22:46 pm por Faceless »
|
En línea
|
|
|
|
i-node
Desconectado
Mensajes: 41
|
Lo he hecho deprisa y corriendo y reutilizando tu codigo, que me ire ahora a dormir.. Mañana si quieres te lo hago de cero. Asi a bote pronto, que recuerde.. No te recomiendo hacer ese using namespace std. Usa un using por cada funcion que vayas a utilizar. Debajo del include de su libreria. Si pasas fila por referencia, no te hace falta hacer ningun return, ya que estas modificando la variable declarada en main directamente, asi que esa funcion debe ser sin retorno (void). Las mayusculas se suelen usar para nombres de constantes si no me equivoco, no para un nombre de matriz. No necesitas la funcion system para hacer eso, ademas su uso es muy peligroso, no te la recomiendo bajo ningun concepto. Por cierto, ese codigo no compilaba. Gracias a esto he aprendido que los arrays multidimensionales deben tener declarado el tamaño de al menos su primera dimension Bueno, espero que te sirva. #include <iostream>
using std::cout; using std::cin; using std::endl;
#include <iomanip>
using std::setw;
#include <cstdlib>
const int N=3; const int M=4; int f,c;
void mostrar_matriz(int [N][M]); void sumas(int [N][M],int [N]); void busca_mayor(int [N],int &);
int main() { int MATRIZ[N][M], Suma[N] = { 0 }, fila = 0, pausa;
for(f=0;f<N;f++) { for(c=0;c<M;c++) { cout<<"Ingrese el elemento ("<<f<<" , "<<c<<") =";
cin>>MATRIZ[f][c];
while(MATRIZ[f][c]<0) { cout<<"Los valores deben ser positivos\n"<<endl; cout<<"Vuelva a ingresar el elemento ("<<f<<" , "<<c<<") ="; cin>>MATRIZ[f][c]; cout<<"\n\n"; }
} }
mostrar_matriz(MATRIZ);
cout << "[C]ontinuar? "; cin >> pausa;
sumas(MATRIZ, Suma);
busca_mayor(Suma, fila);
cout << "El elemento mayor es Suma[" << fila << "] = " << Suma[fila] << "\n";
return 0; }
void mostrar_matriz(int MATRIZ[N][M]) { cout<<"La matriz ingresada es: "<<endl;
for(f=0;f<N;f++) { cout<<endl; for(c=0;c<M;c++) { cout<<setw(4)<<MATRIZ[f][c]; } }
cout<<"\n\n"; }
void sumas(int MATRIZ[N][M],int Suma[N]) { for(int i = 0; i < N; i++) for(int j = 0; j < M; j++) Suma[i] += MATRIZ[i][j];
for(int i = 0; i < N; i++) cout << "Suma[" << i << "] = " << Suma[i] << "\n"; }
void busca_mayor(int Suma[N],int &fila) { for(int i = 1; i < N; i++) if(Suma[i] > Suma[fila]) fila = i; }
|
|
|
En línea
|
|
|
|
Faceless
Desconectado
Mensajes: 8
|
Gracias por la ayuda i-node. He podido avanzar bastante, y el programa esta casi listo. Lo único que me falta es un detalle muy pequeño Has visto que la ultima función, se encarga de buscar cual es el mayor numero de las 3 sumatorias en el vector. Lo único que me falta ahora, es que el programa me diga, a cual fila corresponde la mayor de las tres sumatorias. Si a la 1, la 2 o a la 3. Es un detalle muy pequeño pero no se me ocurre como hacerlo El programa ahora está asi: #include <iostream> #include <iomanip>
using namespace std;
const int N=3; const int M=4; int f,c;
void mostrar_matriz(int [N][M]); void sumas(int [N][M],int [N]); int busca_mayor(int [N],int &);
int main() { int MATRIZ[N][M]; int Suma[N]={0,0,0} int fila; for(f=0;f<N;f++) { for(c=0;c<M;c++) { cout<<"Ingrese el elemento ("<<f<<" , "<<c<<") ="; cin>>MATRIZ[f][c]; while(MATRIZ[f][c]<0) { cout<<"Los valores deben ser positivos\n"<<endl; cout<<"Vuelva a ingresar el elemento ("<<f<<" , "<<c<<") ="; cin>>MATRIZ[f][c]; cout<<"\n\n"; } } } mostrar_matriz(MATRIZ);
sumas(MATRIZ,Suma);
cout<<"el mayor es "<<busca_mayor(Suma,fila)<<" de la fila "<<fila<<endl;
system("pause"); return 0; }
void mostrar_matriz(int MATRIZ[N][M]) { cout<<"La matriz ingresada es: "<<endl; for(f=0;f<N;f++) { cout<<endl; for(c=0;c<M;c++) { cout<<setw(4)<<MATRIZ[f][c]; } } cout<<"\n\n"; } void sumas(int MATRIZ[N][M],int Suma[N]) { int i,j; for (i=0;i<N;i++) // filas for (j=0;j<M;j++) // columnas Suma[i] += MATRIZ[i][j];
}
int busca_mayor(int Suma[N],int &fila) { int mayor; for (fila=0;fila<N;fila++) // filas if (Suma[fila] > mayor) mayor = Suma[fila]; return mayor;
}
|
|
« Última modificación: 2 Mayo 2016, 15:12 pm por Faceless »
|
En línea
|
|
|
|
i-node
Desconectado
Mensajes: 41
|
En el codigo que te he puesto esta hecho asi.
No se pq te empeñas en seguir llamando a system y pause. Ese codigo no es portable y tampoco es seguro.
Ese codigo no va a compilar. Estas operando con la variable fila sin inicializar. Ademas no tiene mucho sentido esa variable, pero bueno.
|
|
« Última modificación: 2 Mayo 2016, 15:35 pm por i-node »
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Alguien me ayuda a terminar este ejercicio de Java?
Java
|
Shory
|
0
|
1,859
|
8 Abril 2017, 05:06 am
por Shory
|
|
|
ayuda para terminar el codigo
Programación C/C++
|
Riskettos
|
2
|
2,374
|
8 Noviembre 2017, 05:53 am
por CalgaryCorpus
|
|
|
Necesito ayuda para terminar mi programa
Programación C/C++
|
bmillar
|
0
|
1,270
|
4 Agosto 2018, 22:00 pm
por bmillar
|
|
|
necesito ayuda para hecer este programa, por favor ayuda
Programación C/C++
|
LARANARENElol
|
2
|
5,080
|
16 Noviembre 2018, 03:00 am
por LARANARENElol
|
|
|
184 paises a favor de terminar el bloqueo de USA en Cuba. USA e Israel se oponen
Foro Libre
|
MCKSys Argentina
|
5
|
4,135
|
24 Junio 2021, 16:20 pm
por MinusFour
|
|