bueno antes que todo Indicar que soy nuevo en el foro y pos me llamo la atencion sobre el apoyo que dan en c++, como veran soy un novato que recien aprende a programar en c++ y andaba teniendo problemas con un problema... como el titulo lo dice Matriz Problema
bueno como recien entro a este tema ya tengo problemas... pues me lio a veces ^^ pero siempre ando probando y probando... y como aqui se dice... " quemando neuronas "
bueno 1ero planteo mi problema que es... ( aunque a muchos le paresca muy simple )
Ingresar numeros a una matriz 4x4
condiciones
-no se debe de repetir el numero... caso contrario mostrar mensaje de existe.. pero dentro de la matriz.
-mostrar el numero mayor y menor dentro de la matriz
-por ultimo mostrar el total de la suma de los numeros ingresados en la matriz.
bueno yo hice el problema... pero solo mostraba el existe el mayor y el menor de una matriz pero no dentro de la matriz ejm:
1<-- existe
650<- mayor
1<-menor
pero la idea no es mostrarlo de esta manera sino dentro de la matriz
ejm
1<-menor 2 3 4
5 6 7 11
8 15 30<-mayor 12
13 14 16 17
y pos no me va... aqui tengo mi avance y mientras sigo modificando me sale un error nuevo y me da una idea nueva... pero lo que no me da en la cabezita.. es que si hay una forma de ordenar bien la matriz... para que no se vea tan disparatada...
en todo caso aqui dejo mi ultimo avanze y espero un apoyo
sea el caso... quisas no tengo muchas erramientas que usar... es pk no eh visto mucho para agregar... de todas maneras si alguien me dice mi error y me da algunas cositas mejores,,, para poder ampliar mi conocimiento se los agradecere
Avanze: por favor compilenlo.
#include<iostream.h>
#include<stdlib.h>
void inicializar(void);
void ingresar(int n);
void mostrar (void);
int numeros[4][4];
int filas=0;
int columnas=0;
void suma(void);
int k=0,s=0,y=0,x=0;
void mayor(void);
main ()
{
int num;
inicializar();
char r='s';
do{
system("cls");
cout<<"Ingrese Numero --->> ";cin>>num;
if (columnas<4)
{
ingresar(num);
}
else
{
filas++;
cout<<"Fila nro :"<<filas<<" llena \n";
columnas=0;
}
cout<<"Desea continuar ? "; cin>>r;
}while(r=='s');
cout<<"Numeros Ingresados \n";
cout<<"______________________\n";
mostrar ();
cout<<" \n";
mayor();
cout<<" \n";
suma();
}
void inicializar (void)
{
for(int x=0;x<4;x++)
{
for (int y=0;y<4;y++)
{
numeros[x][y]=0;
}
}
}
void ingresar (int n)
{
if(filas<4)
{
int existe1,existe2,foco=0;
for(x=0;x<4;x++)
{
for(y=0;y<4;y++)
{
if(numeros[x][y]==n)
{
foco=1;
existe1=x;
existe2=y;
}
}
}
if(foco==0)
{
numeros[filas][columnas]=n;
mostrar();
columnas++;
}
else
{
for(x=0;x<4;x++)
{
for(y=0;y<4;y++)
{
if((existe1==x))
{
if(existe2==y)
{
cout<<"-->"<<numeros[x][y]<<"<<-- Existe";
}
}
else
{
cout<<numeros[x][y]<<" ";
}
}
cout<<"\n";
}
}
}
else
{
cout<<"Matriz llena \n";
}
}
void mostrar (void)
{
for (int a=0;a<4;a++)
{
for(int b=0;b<4;b++)
{
cout<<numeros[a][b]<<" ";
}
cout<<"\n";
}
}
void suma(void)
{
for(int h=0;h<4;h++)
{
for(int d=0;d<4;d++)
{
k=numeros[h][d];
s=s+k;
}
}
cout<<"La suma de la Matriz llena es: "<<s<<" \n";
}
void mayor(void)
{
int mayor=0,posma1=numeros[0][0],posma2=numeros[0][0];
for(int m=0;m<4;m++)
{
for(int n=0;n<4;n++)
{
if(numeros[m][n]>=mayor)
{
mayor=numeros[m][n];
posma1=m;
posma2=n;
}
}
}
int menor=0,posme1=numeros[0][0],posme2=numeros[0][0];
for(int p=0;p<4;p++)
{
for(int o=0;o<4;o++)
{
if(numeros[p][o]<=menor)
{
menor=numeros[p][o];
posme1=p;
posme2=o;
}
}
}
for(int i=0;i<4;i++)
{
for(int u=0;u<4;u++)
{
if(i==posma1)
{
if(u==posma2)
{
cout<<"Numero -->"<<numeros[i][u]<<"<-- Mayor";
}
else
{
cout<<numeros[i][u]<<" ";
}
}
else
{
if((i==posme1)&&(u==posme2))
{
cout<<"Numero -->"<<numeros[i][u]<<"<--Menor";
}
else
{
cout<<numeros[i][u]<<" ";
}
}
}
cout<<"\n";
}
}
/*PD: vi por el foro que criticaban a una persona por pedir ayuda sobre como resolver un problema... y por que no habia posteado mas... en mi caso soy nuevo y quisas no tenga el mismo derecho que los mas antiguos... pero aportare en otras zonas... ya que aqui soy nuevo para este lenguaje.
gracias */