Ver versión completa : C++ Matriz Problema
Cristus
22-may-2006, 11:58
Hola mi primero post aqui y dandole a programacion.
bueno tengo un problema con matrizes... y la verdad quisas tenga excasos recursos pero hago y veo lo que puedo ;)
bueno tengo un problema ahora que recien entro a este tema y es......
Ingresar a una matriz 4x4 numeros que no se repitan y que muestre en pantalla cada digito ingresado y al final que se sumen en la lista llena
bueno aqui tengo mi avanze y aqui un ejercicio anterio que hize ( no en funciones ) pero que cumple con que no se repita en el array
ejercicio como ejemplo para que no se repita el numero ingresado ( no funcion )
Cristus
22-may-2006, 12:04
#include<iostream.h>
#include<stdlib.h>
#include<conio.h>
int x=0;
main()
{
int num,numeros[10],fila=0;
char resp='s';
do{
system("cls");
cout<<"ingrese numero ----->";cin>>num;
if(num>0)
{
if(num>=1&&num<=100)
{
if(num%2==0)
{
if(fila<10)
{
int posexiste,foco=0;
x=0;
for(;x<fila;)
{
if(numeros[x]==num)
{
foco=1;
posexiste=x;
}
x++;
}
if(foco==0)
{
numeros[fila]=num;
fila++;
x=0;
for(;x<fila;)
{
cout<<numeros[x]<<endl;
x++;
}
}
else
{ x=0;
for(;x<fila;)
{
if(posexiste==x)
{
cout<<numeros[x]<<"<------existe\n";
}
else
{
cout<<numeros[x]<<"\n";
}
x++;
}
}
}
else
{
cout<<"lista llena\n";
}
}
else
{
cout<<"ingrese solo numeros pares\n";
}
}
else
{
cout<<"ingrese numeros mayores a 1 y menores a 100\n";
}
}
else
{
cout<<"solo numeros positivos\n";
}
cout<<"desea continuar ?";cin>>resp;
}while(resp=='s');
Cristus
22-may-2006, 12:06
///-----------Mostrar arreglo-------------------
x=0;
int mayor = numeros[0];
int posma;
//---------Mayor-----
for(;x<fila;)
{
if(numeros[x]>=mayor)
{
mayor=numeros[x];
posma=x;
}
x++;
}
//---------Menor------
x=0;
int menor = numeros[0];
int posme;
for(;x<fila;)
{
if(numeros[x]<=menor)
{
menor=numeros[x];
posme=x;
}
x++;
}
//--------2do Mayor-------------
x=0;
int mayor2 = numeros[0];
int posma2;
for(;x<fila;)
{
if(numeros[x]!=mayor)
{
if(numeros[x]>=mayor2)
{
mayor2=numeros[x];
posma2=x;
}
}
x++;
}
//--------Suma------
int suma=0;
x=0;
for(;x<fila;)
{
suma+=numeros[x];
x++;
}
Cristus
22-may-2006, 12:06
//-------MOSTRAR--mayor menor segundo mayor------
x=0;
for(;x<fila;)
{
if(x==posma)
{
cout<<numeros[x]<<"<----Mayor \n";
}
else
{
if(x==posma2)
{
cout<<numeros[x]<<"<----Segundo Mayor \n";
}
else
{
if(x==posme)
{
cout<<numeros[x]<<"<----Menor \n";
}
else
{
cout<<numeros[x]<<"\n";
}
}
}
x++;
}
cout<<"--------------------------"<<endl;
cout<<"la suma es -------->"<<suma<<"\n";
}
Cristus
22-may-2006, 12:07
xD esta en 3 partes pero solo es el ejemplo :S xD
Cristus
22-may-2006, 12:07
y aqui lo que hice con la suma de la matriz... y el ingreso
lamentablemente el que no se repita no me da y eh tenido demasiados errores... asi que le pongo hasta la suma pues lo otro me dio dolor de cabeza xD
bueno esto lo trabaje con funciones... y hasta hay me corre bien el programa pero intentando modificar mi programa para que no se repitan los digitos ingresados me da... pero mal xD
#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;
int s=0;
main ()
{
int num;
inicializar();
char r='s';
do{
system("cls");
cout<<"Ingrese Numero --->> ";cin>>num;
if (columnas<4)
{
ingresar(num);
columnas++;
}
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 ();
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)
{
numeros[filas][columnas]=n;
mostrar();
}
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 Toda la Matriz es: "<<s<<" \n";
}
Cristus
22-may-2006, 12:11
y bueno por ultimo aqui la parte donde me va remal el progra... corre pero mal y me parece que es por la falta de un for para las columnas... y otro detallito tal vez... en todo caso espero ayuda y quisas algunas cosas mas que pueda agregar y ser de mi aprendisaje
#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;
int s=0;
main ()
{
int num;
inicializar();
char r='s';
do{
system("cls");
cout<<"Ingrese Numero --->> ";cin>>num;
if (columnas<4)
{
ingresar(num);
columnas++;
}
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 ();
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 existe,foco=0,x=0;
for(;x<=columnas;)
{
if(numeros[x][columnas]==n)
{
foco=1;
existe=x;
}
x++;
}
if(foco==0)
{
numeros[filas][columnas]=n;
mostrar();
x=0;
}
else
{
x=0;
for(;x<=filas;)
{
if(existe==x)
{
cout<<numeros[x][columnas]<<"<<---- Existe!!! \n";
}
else
{
cout<<numeros[x][columnas]<<"\n";
}
x++;
}
}
}
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";
}
gracias
Cristus
22-may-2006, 12:12
bueno si algun kapo me puede ayudar y enseñar algunas otras cosillas mas se los agradecere....
mientras seguire intentando :D
Gracias ;)
Cristus
22-may-2006, 12:13
ahora que me percato en las caritas que se ven en el programa son ; ) no es la cara que va en el programa sino el ; y el ) xD gracias
=)
vBulletin® v3.7.1, Copyright ©2000-2009, Jelsoft Enterprises Ltd.