ngdev Posted October 19, 2014 Report Share Posted October 19, 2014 (edited) Buenas soy nuevo en el foro así que si mi pregunta no va aquí mis disculpas. la cosa es que estoy haciendo un ejercicio que dice lo siguientes (generar una matriz de 4 filas y 5 columnas con números aleatorios entre 1 y 100 e imprimir) #include <iostream.h> #include <conio.h> #include <time.h> #include <stdlib.h> main(){ int matriz[3][4]; srand(time(NULL)); for(int x=0;x<4;x++){ cout<<endl; for(int y=0;y<5;y++){ matriz[x][y]=rand()%100; if(matriz[x][y]>10){ cout<<" "<<matriz[x][y]<<" "; }else{ cout<<" "<<matriz[x][y]<<" "; } } } getch(); } me compila sin warnings ni errores al ejecutarse todo bien y si cierro la consola desde la X que esta en la esquina superior derecha cero problemas. el problema surge cuando quiero cerrar la consola apretando una tecla que esta esperando getch() justo después de apretar la tecla que espera getch() me sale lo de la primera imagen y luego que le doy aceptar al aviso me salen esos valores raros de la segunda imagen 1era imagen http://prntscr.com/4xotlb2da imagen http://prntscr.com/4xotrk si alguien sabe lo que es le agradecería mucho su ayuda :D Edited October 19, 2014 by ngdev Link to comment Share on other sites More sharing options...
susodicho Posted October 19, 2014 Report Share Posted October 19, 2014 :mmm: Si esto fuese VB.NET, la matriz que declaraste sería de 4 filas y 5 columnas, pero esto es C++, así que la matriz que declaraste es de 3 filas y 4 columnas :huasonto: Lo otro, estás asignándole valores aleatorios entre 0 y 99. Link to comment Share on other sites More sharing options...
The Duke of Quakem Posted October 20, 2014 Report Share Posted October 20, 2014 (edited) Hasta donde pude ver, el código estaría ok. Lo único que me entraría en duda, es en la declaración del main. Si mal no recuerdo, en C++ la declaración de un método o función debería ser int main() { //codigo return 0; }o void main() { //codigo }y en el código que posteaste no declaras si el main es método (void main) o función (<tipo variable> main), y eso puede que sea la razón de porqué tu programa se cae al final. Ah, y complementando lo que susodicho escribió, para obtener un número aleatorio entre y 100 debes poner en tu código matriz[x][y] = rand()%100 + 1; Edited October 20, 2014 by The Duke of Quakem Link to comment Share on other sites More sharing options...
susodicho Posted October 20, 2014 Report Share Posted October 20, 2014 (edited) Hasta donde pude ver, el código estaría ok. Lo único que me entraría en duda, es en la declaración del main. Si mal no recuerdo, en C++ la declaración de un método o función debería ser int main() { //codigo return 0; }o void main() { //codigo }y en el código que posteaste no declaras si el main es método (void main) o función (<tipo variable> main), y eso puede que sea la razón de porqué tu programa se cae al final. Por si acaso, en C es válido declarar una variable o función sin especificar el tipo de dato, se asume el tipo int. Ahora, esa es una característica del lenguaje C, en C++ eso no se puede hacer, excepto en algunos compiladores antiguos como los de Borland. De hecho, en cualquier compilador actual, el código ni siquiera compila porque en C++ hace tiempo que se usan los espacios de nombres y actualmente los encabezados C++ no tienen la extensión ".h". Así que lo único que se podría echar de menos es una advertencia del compilador diciendo que la función main no devuelve un valor (ya que implícitamente debería devolver un int). :huasonto: Edited October 24, 2014 by susodicho Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now