Autor
|
Tema: Programando Arreglos (Leído 3,876 veces)
|
phooeenix
Desconectado
Mensajes: 5
|
Hola Buenas a todos, estoy intentando realizar un programa en c++ que me diga la cantidad de ceros que hay en un arreglo bidimensional, las dimensiones del arreglo son dadas por el usuairo las cuales no pueden exeder de 15, y al final debe mostrar la cantidad de ceros que tiene el arreglo. la cantidad de ceros que tiene cada renglón del arreglo. la cantidad de ceros que tenga cada una de las columnas del arreglo. Este es el avance que llevo hasta ahorita #include <cstdlib> #include <iostream> #include <ctime> using namespace std; /* El progrma debera contar la cantidad de 0's en un arreglo bidimensional * cuyas dimensiones son dadas por el usuario */ int main(int argc, char *argv[]) { int y; int x; cout<<"Numero de filas: "; cin>>x; cout<<"Numero de columnas: "; cin>>y; srand(time(0)); int dimension [15][15]; cout<<"\nEl arreglo es: \n\n"; for(int i=0; i<x; i++){ for (int a=0; a<y; a++){ dimension[i][a]= rand() % 9; cout<<dimension[i][a]<<" "; } cout<<endl; } cout<<"\n"; cout<<"\n"; system ("PAUSE"); return EXIT_SUCCESS; }
|
|
« Última modificación: 23 Abril 2016, 10:24 am por phooeenix »
|
En línea
|
|
|
|
MAFUS
Desconectado
Mensajes: 1.603
|
Oh, que bueno! El primero que veo que incuye todas las cabeceras correctas de C++. Pero fallas en la definicion de la tabla. No debería ser porque así el tamaño lo decides tu, no el usuario: si este usa números más grandes te buscará para que le devuelvas el dinero.
|
|
|
En línea
|
|
|
|
|
MAFUS
Desconectado
Mensajes: 1.603
|
Ah, pues lo primero que debes hacer es avisar al usuario si se excede en las dimensiones, o son muy pequeñas (imagínate que pone 0 o menor a 0). Después con bucles anidados haces (te lo voy a dejar en seudocódigo porqué es muy fácil. por i = 1 hasta num_filas cuenta = 0 por j = 1 hasta num_columnas si elemento(i,j) es 0 cuenta = cuenta + 1 imprimir "El número de 0s en fila " i " es " cuenta
Similar para conseguir el número de 0s para las columnas. Para toda la tabla es cuenta = 0 por i = 1 hasta num_filas por j = 1 hasta num_columnas si elemento(i,j) es 0 cuenta = cuenta + 1 imprimir "El número de 0s en la tabla es " cuenta
|
|
|
En línea
|
|
|
|
phooeenix
Desconectado
Mensajes: 5
|
Muchas Gracias hermano MAFUS, al final el programa me quedo asi: #include <cstdlib> #include <iostream> #include <ctime> using namespace std; /* El progrma debera contar la cantidad de 0's en un arreglo bidimensional * cuyas dimensiones son dadas por el usuario */ int main(int argc, char *argv[]) { int ceros=0; int sum; int y; int x; cout<<"Numero de filas: "; cin>>x; cout<<"Numero de columnas: "; cin>>y; srand(time(0)); int dimension [x][y]; cout<<"\nEl arreglo es: \n\n"; for(int i=0; i<x; i++){ for (int a=0; a<y; a++){ dimension[i][a]= rand() % 10; cout<<dimension[i][a]<<" "; } cout<<endl; } cout<<"\n"; ceros=0; sum=0; for(int i=0; i<x;i++){ for(int a=0; a<y;a++){ if(dimension[i][a]==ceros){ sum= sum+1; } } } cout<<"La cantidad de 0's en el arreglo es de: "<<sum<<endl; cout<<"\nCeros por fila: "<<endl; for(int i=0; i<x;i++){ ceros=0; sum=0; for(int a=0; a<y;a++){ if (dimension[i][a]==ceros){ sum= sum+1; } } cout<<"Cantidad de 0's en la fila "<<i+1<<" es: "<<sum<<endl; sum=0; } cout<<"\nCeros por Columna: "<<endl; for(int a=0; a<y;a++){ ceros=0; sum=0; for(int i=0; i<x;i++){ if (dimension[i][a]==ceros){ sum= sum+1; } } cout<<"Cantidad de 0's en la columna "<<a+1<<" es: "<<sum<<endl; sum=0; } cout<<"\n"; system ("PAUSE"); return EXIT_SUCCESS; }
|
|
|
En línea
|
|
|
|
LordOfD96
Desconectado
Mensajes: 1
|
me gusta tu código solo que al crear un arreglo bi-dimensional no puedes darle los atributos de X y Y dentro del código, debe primero reservar memoria. por que no intentas con un arreglo dinámico. ahorita no recuerdo como se hace pero llegando a mi casa reviso mis apuntes de arreglos dinámicos.
|
|
|
En línea
|
|
|
|
MAFUS
Desconectado
Mensajes: 1.603
|
C++ y C a partir del estándar del 99 sí se puede declarar el array con variables.
|
|
|
En línea
|
|
|
|
class_OpenGL
Desconectado
Mensajes: 437
Si usas Direct3D, no eres mi amigo :P
|
Si, bueno, pero como introduzcas valores muy grandes la pila se te va al traste xD
|
|
|
En línea
|
| Programador aficionado. Me quiero centrar en programar videojuegos. La API que uso para crearlos es OpenGL |
|
|
|
|
+ 1 Oculto(s)
Desconectado
Mensajes: 298
un defecto se puede convertir en una virtud
|
hola amigo class_OpenGl tenes algun proyecto en mente para realizar ? algun video juego?
te cuento que hice algunos proyectos desde cero sin utilizar librerias, pero se demora demasiado y estaria encantado en poder utilizar opengl para librarme del peso de algunas cosas
saludos...
|
|
|
En línea
|
|
|
|
|
|
|