Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Problemas con arreglos bidimensionales

Estas en el tema de Problemas con arreglos bidimensionales en el foro de C/C++ en Foros del Web. Que tal! alguien que me pueda ayudar a la solución de estos dos programas usando arreglos bi dimensionales? ya que soy algo noob en la ...
  #1 (permalink)  
Antiguo 21/07/2015, 01:05
 
Fecha de Ingreso: julio-2015
Mensajes: 3
Antigüedad: 8 años, 9 meses
Puntos: 0
Pregunta Problemas con arreglos bidimensionales

Que tal! alguien que me pueda ayudar a la solución de estos dos programas usando arreglos bi dimensionales? ya que soy algo noob en la programación.
Les agradecería mucho si me pudiesen explicar como ir creando el código.

1) SE REQUIERE ELABORAR UNA MATRIZ DE 5X9 CON VALORES COMPRENDIDOS ENTRE 2 Y 20. QUE CALCULE:
a) UNA FUNCIÓN QUE CAPTURE LOS DATOS.
b) CALCULE EL PROMEDIO DE C/U. DE LAS FILAS.
c) DE LA FILA 3. CUÁNTOS NÚMEROS SON MAYORES QUE EL PROMEDIO DE LA FILA.
d) CONSIDERANDO TODOS LOS DATOS DE LA MATRIZ. CUANTOS NÚMEROS SON MENORES QUE 15.
e) OBTENGA LA SUMA DE TODAS LAS COLUMNAS. QUE COLUMNA TIENE LA MAYOR SUMA.
f) EL PROGRAMA DEBERÁ CONTAR UNA FUNCIÓN POR C/U DE LOS INCISOS EN C/C++.

2) EN EL CENTRO METEOROLÓGICO DE D.F. SE LLEVA LOS PROMEDIOS MENSUALES DE LLUVIAS CAIDAS LAS PRINCIPALES REGIONES DEL DISTRITO. EXISTEN 3 REGIONES IMPORTANTES DENOMINADAS NORTE, CENTRO Y SUR ARREGLO 3X12. ELABORE UN PROGRAMA EN C/C++ PARA CALCULAR:
a) EL PROMEDIO ANUAL DE LA REGIÓN DEL CENTRO.
b) EL MES Y REGISTRO CON MENOR LLUVIA EN LA REGIÓN SUR.
c) LA REGIÓN CON MAYOR LLUVIA ANUAL ENTRE C/U DE LAS REGIONES.
  #2 (permalink)  
Antiguo 21/07/2015, 01:40
Avatar de xKuZz  
Fecha de Ingreso: febrero-2015
Ubicación: nullptr
Mensajes: 183
Antigüedad: 9 años, 2 meses
Puntos: 27
Respuesta: Problemas con arreglos bidimensionales

Pon lo que llevas hecho de código y te ayudaremos en los puntos en los que encuentres dificultades
  #3 (permalink)  
Antiguo 21/07/2015, 02:02
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 9 años, 6 meses
Puntos: 204
Respuesta: Problemas con arreglos bidimensionales

Cita:
Iniciado por xKuZz Ver Mensaje
Pon lo que llevas hecho de código y te ayudaremos en los puntos en los que encuentres dificultades
No se por qué me da que ya ha puesto todo lo que tiene hecho :)
  #4 (permalink)  
Antiguo 23/07/2015, 23:35
 
Fecha de Ingreso: julio-2015
Mensajes: 3
Antigüedad: 8 años, 9 meses
Puntos: 0
Respuesta: Problemas con arreglos bidimensionales

Cita:
Iniciado por xKuZz Ver Mensaje
Pon lo que llevas hecho de código y te ayudaremos en los puntos en los que encuentres dificultades
Es que tengo un codigo que hice que suma todas las columnas con una funcion y otra funcion que suma las filas, la duda que tengo es como poder solo sumar una columna o solo una fila. este es el codigo que tengo como plantilla


#include <iostream>
#include <stdlib.h>
#include <stdio.h>

#define F 10
#define C 10

using namespace std;

void LeerMtz(float X[F][C], int m, int n);
void ImpMtz(float X[F][C], int m, int n);
void MayorMtz(float X[F][C], int m, int n);
void OrdenarMtz(float X[F][C], int m, int n);
void sumacolumnas(float X[F][C], int m, int n);
void sumafilas(float X[F][C], int m, int n);

int main(){
system("cls");

int m,n;
float X1[F][C];
printf("introduce m-filas y n-columnas: \n");
scanf("%d%d",&m,&n);
if(m>F&&n>C){
printf("\n Memoria Insuficiente\n");
exit(1);
}
else{
LeerMtz(X1,m,n);
ImpMtz(X1,m,n);
MayorMtz(X1,m,n);
OrdenarMtz(X1,m,n);
sumacolumnas(X1,m,n);
sumafilas(X1,m,n);
}
system("pause");
return 0;
}

void LeerMtz(float X[F][C], int m, int n){
int i,j;
for(i=0;i<m;i++){
for(j=0;j<n;j++){
printf("X[%d][%d]=",i,j);
scanf("%f", &X[i][j]);
}
}
}
void ImpMtz(float X[F][C], int m, int n){
int i,j;
printf("La matriz es: \n\n");
for(i=0;i<m;i++){
for(j=0;j<n;j++){
printf("%.0f\t ",X[i][j]);
}
printf("\n");
}
}
void MayorMtz(float X[F][C], int m, int n){
int i,j;
float Mayor;
Mayor=X[0][0];
for(i=0;i<m;i++){
for(j=0;j<n;j++){
if(Mayor<X[i][j]){
Mayor=X[i][j];
}
}
}
printf("\nEl Elemento mayor es: %.0f\n",Mayor);
}
void OrdenarMtz(float X[F][C], int m, int n){
int i,j,x,y;
float Mayor=0.0;
for(i=0;i<m;i++){
for(j=0;j<n;j++){
for(x=0;x<m;x++){
for(y=0;y<n;y++){
if(X[i][j]>X[x][y]){
Mayor=X[i][j];
X[i][j]=X[x][y];
X[x][y]=Mayor;
}
}
}
}
}
printf("\nOrdenada de mayor a menor: \n\n");
ImpMtz(X,x,y);
printf("\n");
}

void sumacolumnas(float X[F][C], int m, int n){
int i,j;
float sum=0.0;
float Vf[j];
for(j=0;j<n;j++){
sum=0.0;
for(i=0;i<n;i++){
sum=sum+X[i][j];
}
Vf[j]=sum;
}
printf("La suma de cada columna es: \n\n");
printf("Vf=(");
for(j=0;j<n;j++){
printf("\t%.0f",Vf[j]);
}
printf(")");
printf("\n");
}
void sumafilas(float X[F][C], int m, int n){
int i,j;
float sum=0.0;
float Vc[i];
for(i=0;i<n;i++){
sum=0.0;
for(j=0;j<n;j++){
sum=sum+X[i][j];
}
Vc[i]=sum;
}
printf("La suma de cada columna es: \n\n");
printf("Vf=(");
for(i=0;i<n;i++){
printf("\t%.0f",Vc[i]);
}
printf(")");
printf("\n");
}
  #5 (permalink)  
Antiguo 23/07/2015, 23:38
 
Fecha de Ingreso: julio-2015
Mensajes: 3
Antigüedad: 8 años, 9 meses
Puntos: 0
Respuesta: Problemas con arreglos bidimensionales

Cita:
Iniciado por eferion Ver Mensaje
No se por qué me da que ya ha puesto todo lo que tiene hecho :)
jajajaja algo ya respondi con el codigo que tengo de base :)
  #6 (permalink)  
Antiguo 24/07/2015, 01:33
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 9 años, 6 meses
Puntos: 204
Respuesta: Problemas con arreglos bidimensionales

Si para sumar todas las columnas haces:

Código C:
Ver original
  1. void sumacolumnas(float X[F][C], int m, int n){
  2.   int i,j;
  3.   float sum=0.0;
  4.   float Vf[j];
  5.   for(j=0;j<n;j++){
  6.     sum=0.0;
  7.     for(i=0;i<n;i++){
  8.       sum=sum+X[i][j];
  9.     }
  10.     Vf[j]=sum;
  11.   }
  12.   printf("La suma de cada columna es: \n\n");
  13.   printf("Vf=(");
  14.   for(j=0;j<n;j++){
  15.     printf("\t%.0f",Vf[j]);
  16.   }
  17.   printf(")");
  18.   printf("\n");
  19. }

Y más concretamente:

Código C:
Ver original
  1. for(j=0;j<n;j++){
  2.     sum=0.0;
  3.     for(i=0;i<n;i++){
  4.       sum=sum+X[i][j];
  5.     }
  6.     Vf[j]=sum;
  7.   }

Pues tienes que j es el índice de la columna... cada iteración del primer for suma una columna. ¿No es lo que necesitabas? Simplemente necesitas un bucle que recorra todas las celdas que tiene una columna. El bucle únicamente tiene que sumar valores.

Un saludo

Etiquetas: arrays, arreglos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:14.