Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: killer97 en 31 Marzo 2017, 01:15 am



Título: Matriz en caracol de adentro hacia afuera
Publicado por: killer97 en 31 Marzo 2017, 01:15 am
Hola!

Estoy intentando generar una matriz en caracol de adentro hacia afuera, mi código actual solo la genera de afuera hacia adentro.

Pueden ayudarme con el código para generar la matriz de adentro hacia afuera.

Código
  1. #include <cstdlib>
  2. #include <iostream>
  3.  
  4. using namespace std;
  5.  
  6. int main(int argc, char *argv[])
  7. {
  8. {
  9.  
  10. int paso=1,cont=1;
  11. int a[50][50];
  12. int grado;
  13. cout<<"Ingrese la matriz a generar: ";
  14. cin>>grado;
  15. for(int k=0;k<grado;k++)for(int j=0;j<grado;j++)a[k][j]=0;
  16.  
  17. for(int i=0;i<grado;i++){
  18.  
  19. if(paso==1){
  20. for(int j=0;j<grado;j++){
  21. if(a[i][j] == 0)
  22. a[i][j]=cont++;
  23. }
  24. }
  25. paso++;
  26.  
  27.  
  28. if(paso==2){
  29. for(int j=0;j<grado;j++){
  30. if(a[j][grado-(i+1)]==0)
  31. a[j][grado-(i+1)]=cont++;
  32. }
  33. }
  34.  
  35.  
  36. paso++;
  37. if(paso==3){
  38. for(int j=grado-1;j>=0;j--){
  39. if(a[grado-(i+1)][j] == 0)
  40. a[grado-(i+1)][j]=cont++;
  41. }
  42. }
  43. paso++;
  44.  
  45. if(paso==4){
  46. for(int j=grado-1;j>=0;j--){
  47. if(a[j][i] == 0)
  48. a[j][i]=cont++;
  49. }
  50. }
  51. paso=1;
  52.  
  53.  
  54. }
  55. for(int ii=0;ii<grado;ii++){
  56. for(int j=0;j<grado;j++){
  57. if(a[ii][j]<10)cout<<"0"; cout<<a[ii][j]<<" ";
  58. }
  59. cout<<endl;}
  60. getchar();
  61.  
  62. }
  63.  
  64.  
  65.  
  66.  
  67. system("PAUSE");
  68. return EXIT_SUCCESS;
  69. }
  70.  


· Los códigos deben ir en etiquetas GeSHi
>aquí las reglas del foro (http://foro.elhacker.net/reglas.htm)
-Engel Lex