ayuda con programa matrices kn arreglo bidimensionales xfaaaaa =(

Iniciado por johnnyBsc17, 27 Septiembre 2011, 04:33 AM

0 Miembros y 1 Visitante están viendo este tema.

johnnyBsc17

el programa debe mostrarme una 3ra fila k sake el promedio por columna de la matriz
ej:         ejecutado me da asi -----> [IMG]http://i56.tinypic.com/32zjjmx.jpg[/IMG

/*EJERCICIO 11
arreglos bidimencionales. ingresar y mostrar el promedio de filas
FECHA: LUNES 26 DE SEPTIEMBRE
CURSO:
ELABORADO POR: */
#include<iostream.h>
#include<conio.h>

int busqueda_lineal (const int [],int , int);
//declarar funcion

main()
{
char op ;
do
{
clrscr();
int notas [30][30];
int i,j,fil,col;
float suma=0.0, promedio;

cout<<"\n *****************ARREGLOS BIDIMENSIONALES***************** \n";
cout<<"cuantas filas =>";
cin>>fil;
cout<<"cuantas columnas =>";
cin>>col;

cout<<"\ningresos de valores:\n\n" ;
for (i=0; i<fil;i++)
{
   for (j=0; j<col;j++)
   {
     cout<<"fila["<<i<<"]"
         <<"columna["<<j<<"]=>";
     cin>>notas[j];
   }
}

cout<<"\n .....salida de valores....\n";
for (i=0; i<fil;i++)
{
   suma=0.0;
   cout<<"\t"<<"\n";
   for (j=0; j<col;j++)
   {
    cout<<"\t"<<notas[j];
    suma=suma+notas[j];
   }
   promedio=suma/fil;
   cout<<"\t"<<promedio <<"\n";
}

cout<<"\n\t\t\t =) =)!!!\n";
cout<<"\n DESEA SALIR S/N....";
op=getch();
}while ((op!='s') && (op!='S'));
return 0;
}

kisiera k me ayuden kn esa solucion !! graxias

satu

Hola

Cuando calculas el promedio de las filas divides entre fil y debes dividir entre col, además pones notas[j], debería ser notas[ i ][j]

No utilices conio

Para calcular el promedio de las columnas puedes crearte un array, lo inicializas a 0 y luego sumas. Te pongo el código:

Código (cpp) [Seleccionar]

#include<iostream>
using namespace std;

int main()
{
char op ;
int notas [30][30];
int i,j,fil,col;
float suma=0.0, promedio, columnas[30];

do
     {
     for(int x=0; x<30; x++)
        columnas[x] = 0;

     cout<<"\n *****************ARREGLOS BIDIMENSIONALES***************** \n";
     cout<<"cuantas filas =>";
     cin>>fil;
     cout<<"cuantas columnas =>";
     cin>>col;

     cout<<"\nIngreso de valores:\n\n" ;
     for (i=0; i<fil;i++)
        {
        for (j=0; j<col;j++)
            {
            cout<<"fila["<<i<<"]"<<"columna["<<j<<"]=>";
            cin>>notas[i][j];
            }
        }

    cout<<"\n .....Salida de valores....\n";
    for (i=0; i<fil;i++)
        {
        suma=0.0;
        cout<<"\t"<<"\n";
        for (j=0; j<col;j++)
            {
            cout<<"\t"<<notas[i][j];
            suma=suma+notas[i][j];
            columnas[j] += notas[i][j];
            }
        promedio=suma/col;
        cout<<"\t"<<promedio <<"\n";
        }
     cout<<endl<<endl;
     for(int x=0; x<col; x++)
        cout<<"\t"<<columnas[x]/fil;

     cout<<"\n\t\t\t =) =)!!!\n";
     cout<<"\n DESEA SALIR S/N....";
     cin>>op;
    }
while ((op!='s') && (op!='S'));

return 0;
}


Saludos
Breakbeat como forma de vida

johnnyBsc17

hola graxias por ayudarme ..........ayudame kn algo mas xfa el programa ya me calcula el promedio de las filas y de 1 columna a la vez pero me faltan las demas columnas
como muestra la imagen------->

aki esta la codificacion uso el turbo c
#include<iostream.h>
#include<conio.h>

int busqueda_lineal (const int [],int , int);
//declarar funcion

main()
{
char op ;
//do
{
clrscr();
int notas [30][30];
int x,i,j,fil,col;
float suma=0.0, promediofila,promediocol, columnas[30];
  for(x=0; x<30; x++)
  {
  columnas
  • = 0;
    cout<<"\n *****************ARREGLOS BIDIMENSIONALES***************** \n";
    cout<<"cuantas filas =>";
    cin>>fil;
    cout<<"cuantas columnas =>";
    cin>>col;

    cout<<"\ningresos de valores:\n\n" ;
    for (i=0; i<fil;i++)
    {
       for (j=0; j<col;j++)
       {
         cout<<"fila["<<i<<"]"
             <<"columna["<<j<<"]=>";
         cin>>notas[j];
       }
    }

    cout<<"\n .....salida de valores....\n";
    for (i=0; i<fil;i++)
    {
       suma=0.0;
       cout<<"\t"<<"\n";
       for (j=0; j<col;j++)
       {
        cout<<"\t"<<notas[j];
        suma=suma+notas[j];
             columnas[j] += notas[j];
       }
       promediofila=suma/fil;
       promediocol=suma/col;
       cout<<"\t"<<promediofila <<"\n\n";
       
    }
      for(x=0; x<col; x++)
       {
         cout<<"\t"<<columnas
    • /fil;

           cout<<"\n\t\t\t =) =)!!!\n";
           cout<<"\n DESEA SALIR S/N....";
           op=getch();}

      }
       
        }
      }

      xfa ayudenme con eso

s00rk

#3
En el foro existen las etiquetas [code ] [/ code]
Que son para darle mejor legibilidad al codigo porque asi la verdad complica mas, si podrias poner [ code=lenguaje][/ code]
asi se notaria mejor jeje
Ejemplo:
Código (c++) [Seleccionar]

void main{
    cin.get();cin.get();
}


Bueno ya revisando el codigo este ultimo que colocaste de hecho no comprendo como esque te corre, ya que primeramente columnas es un vector y colocas en el for columnas = 0; y deberia ser columnas[x ] = 0; bueno eso y otros errores que veo que aun no manejas muy bien, empezare a checarlo y hacer uno bien para ver como va, por ahora entiendo que es meter cuantos renglones y columnas seran
Ejemplo:

Filas = 2;
Columnas = 3;

Pero al final sera de Filas = 3 & Columnas = 4, puesto que en la ultima se mostrara la suma para cada una de esas no ?

---------------------

Edit: Ahora hice algo sencillo aunque la ultima ezquina no es llenada y queda en 0 jeje
Código (c++) [Seleccionar]

#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
   
    int fila, columna, suma;
   
    //Preguntamos la cantidad de Filas & Columnas de la Matriz
    printf("Filas: ");
    scanf("%d", &fila);
    printf("Columnas: ");
    scanf("%d", &columna);
   
    //Creamos la matriz sumandole 1 fila y 1 a columna puesto que en esa ultima fila y ultima columna se mostraran las sumas de las mismas
    int matriz[fila+1][columna+1];
   
    //Llenamos la matriz con datos
    for(int x = 0; x < fila; x++)
    {
            for(int xx = 0; xx < columna; xx++)
            {
                    cout << "Fila[" << x << "] Columna[" << xx << "]: ";
                    cin >> matriz[x][xx];
            }
    }
                   
    //Llenamos la ultima Columna de cada fila
    for(int x = 0; x < fila; x++)
    {
            suma = 0;
            for(int xx = 0; xx <= columna; xx++)
            {
                    if(xx == columna)
                          matriz[x][columna] = suma;
                    else
                        suma += matriz[x][xx];                   
            }
    }
   
    //Llenamos la ultima fila de cada columna
    for(int x = 0; x < columna; x++)
    {
            suma = 0;
            for(int xx = 0; xx <= fila; xx++)
            {
                    if(xx == fila)
                          matriz[xx][x] = suma;
                    else
                        suma += matriz[xx][x];
            }
    }
   
    //Mostramos la matriz
    for(int x = 0; x <= fila; x++)
    {
            for(int xx = 0; xx <= columna; xx++)
            {
                    cout << matriz[x][xx] << "\t";
            }
            cout << endl;
    }
   
    cin.get();cin.get();
}


Bueno ahi es una idea si asi no es pues aver como podria ser, o hacer las operaciones en el instante que se van mostrando

------------

Edit2:

Bueno estaba aburrido y pues lo hice de una vez jeje

Código (c++) [Seleccionar]
#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
   
    int fila, columna, suma;
   
    //Preguntamos la cantidad de Filas & Columnas de la Matriz
    printf("Filas: ");
    scanf("%d", &fila);
    printf("Columnas: ");
    scanf("%d", &columna);
   
    //Creamos la matriz sumandole 1 fila y 1 a columna puesto que en esa ultima fila y ultima columna se mostraran las sumas de las mismas
    int matriz[fila][columna];
   
    //Llenamos la matriz con datos
    for(int x = 0; x < fila; x++)
    {
            for(int xx = 0; xx < columna; xx++)
            {
                    cout << "Fila[" << x << "] Columna[" << xx << "]: ";
                    cin >> matriz[x][xx];
            }
    }
   
    //Mostramos la matriz y calculamos promedio por fila
    for(int x = 0; x < fila; x++)
    {
            suma = 0;
            for(int xx = 0; xx <= columna; xx++)
            {
                    if(xx == columna)
                         cout << (suma/columna);
                    else{
                        cout << matriz[x][xx] << "\t";
                        suma += matriz[x][xx];
                        }
            }
            cout << endl;
    }
   
    //Mostramos el promedio por columna
    for(int x = 0; x < columna; x++)
    {
            suma = 0;
            for(int xx = 0; xx <= fila; xx++)
            {
                    if(xx == fila)
                          cout << (suma/fila) << "\t";
                    else
                        suma += matriz[xx][x];
            }
    }
    cin.get();cin.get();
}

johnnyBsc17

si brother en la fila 3 vendir a mostrar el promedio de las columnas i la olumnas 3 el promedio de las filas i si me corre el programa bro kizas diskulpame soy d 1er año i corregime k yo aprendo muxas grcias por tu ayuda !!!

s00rk

Pues ya esta hecho en el ultimo codigo que te puse ahi ya anda bien o como vi el de la imagen jeje



Cita de: s00rk en 28 Septiembre 2011, 03:12 AM
------------

Edit2:

Bueno estaba aburrido y pues lo hice de una vez jeje

Código (c++) [Seleccionar]
#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
   
    int fila, columna, suma;
   
    //Preguntamos la cantidad de Filas & Columnas de la Matriz
    printf("Filas: ");
    scanf("%d", &fila);
    printf("Columnas: ");
    scanf("%d", &columna);
   
    //Creamos la matriz sumandole 1 fila y 1 a columna puesto que en esa ultima fila y ultima columna se mostraran las sumas de las mismas
    int matriz[fila][columna];
   
    //Llenamos la matriz con datos
    for(int x = 0; x < fila; x++)
    {
            for(int xx = 0; xx < columna; xx++)
            {
                    cout << "Fila[" << x << "] Columna[" << xx << "]: ";
                    cin >> matriz[x][xx];
            }
    }
   
    //Mostramos la matriz y calculamos promedio por fila
    for(int x = 0; x < fila; x++)
    {
            suma = 0;
            for(int xx = 0; xx <= columna; xx++)
            {
                    if(xx == columna)
                         cout << (suma/columna);
                    else{
                        cout << matriz[x][xx] << "\t";
                        suma += matriz[x][xx];
                        }
            }
            cout << endl;
    }
   
    //Mostramos el promedio por columna
    for(int x = 0; x < columna; x++)
    {
            suma = 0;
            for(int xx = 0; xx <= fila; xx++)
            {
                    if(xx == fila)
                          cout << (suma/fila) << "\t";
                    else
                        suma += matriz[xx][x];
            }
    }
    cin.get();cin.get();
}


johnnyBsc17

#6
AYUDAME CON ESTO ES Q TENGO K PRESENTARLO EN TURBO C++ 4.5 LA CODIFICACION

Código (cpp) [Seleccionar]
    #include <stdlib.h>
#include <iostream.h>

main()
{
int fila, columna,x,xx;
float suma=0.0;
  //Preguntamos la cantidad de Filas & Columnas de la Matriz
cout<<"Filas: ";
cin>>fila;
cout<<"COlumnas: ";
cin>>columna;
//Creamos la matriz sumandole 1 fila y 1 a columna puesto que en esa ultima fila y ultima columna se mostraran las sumas de las mismas
int matriz[fila][columna];
//Llenamos la matriz con datos
for( x = 0; x < fila; x++)
{
  for( xx = 0; xx < columna; xx++)
{
cout << "Fila[" << x << "] Columna[" << xx << "]: ";
cin >> matriz[x][xx];
}
}
//Mostramos la matriz y calculamos promedio por fila
for( x = 0; x < fila; x++)
{            suma = 0;
for( xx = 0; xx <= columna; xx++)            {                    if(xx == columna)
cout << (suma/columna);
else{
cout << matriz[x][xx] << "\t";
suma += matriz[x][xx];
}
}            cout << endl;
}
//Mostramos el promedio por columna
for( x = 0; x < columna; x++)
{
suma = 0;
for( xx = 0; xx <= fila; xx++)
{
if(xx == fila)
cout << (suma/fila) << "\t";
else
suma += matriz[xx][x];
}
}
return 0;
}     


me da error constant expression required in function main()      en la linea int matriz[fila][columna];

diskulpa es k uso turbo c++ 4.5

satu

Hola

Cita de: johnnyBsc17 en 28 Septiembre 2011, 06:13 AM
me da error constant expression required in function main()      en la linea int matriz[fila][columna];

Ese error te da porque estás creando la matriz en tiempo de ejecución, para poder hacerlo así debes declararla al principio como int **matriz pero dudo que hayas dado punteros, así que debes crearla como lo hacías al principio dándole un tamaño: int matriz[30][30] por ejemplo

Saludos
Breakbeat como forma de vida

LearningSpanishProgrammer

Estoy aprendiendo español, y tu estas aprendiendo programación