elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  matriz 5*5 no me da error pero no compila
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: matriz 5*5 no me da error pero no compila  (Leído 5,202 veces)
creiko

Desconectado Desconectado

Mensajes: 44


Ver Perfil
matriz 5*5 no me da error pero no compila
« en: 25 Mayo 2016, 07:12 am »

Buenas lo que tengo que hacer es una matriz de 5* 5 = 65 por todas su columnas , filas y diagonales

tengo este codigo de 3*3= 15 por todo lado, le cambio a  5 *5 =65 pero no me corre ya lo revise linea por linea y no logro verlo si me pueden ayudar lo agradeceria


Codigo 3 * 3 =15
Código
  1. #include<stdio.h>
  2. #include<conio.h>
  3. #include<stdlib.h>
  4. #include<time.h>
  5.  
  6. main()
  7. {
  8. int s1,s2,s3,s4,s5,s6,s7,s8,m[3][3],i,j,a,num1,num2,num3,num4,num5,num6,num7,num8,num9;
  9. srand (time(NULL));
  10. do
  11. {
  12. a=0;
  13. num1=0;
  14. num2=0;
  15. num3=0;
  16. num4=0;
  17. num5=0;
  18. num6=0;
  19. num7=0;
  20. num8=0;
  21. num9=0;
  22. s1=0;
  23. s2=0;
  24. s3=0;
  25. s4=0;
  26. s5=0;
  27. s6=0;
  28. s7=0;
  29. s8=0;
  30. for(i=0;i<=2;i++)
  31. {
  32. for(j=0;j<=2;j++)
  33. {
  34. do
  35. {
  36. m[i][j]=rand()%9+1;
  37. }
  38. while((m[i][j]==num1) or (m[i][j]==num2) or (m[i][j]==num3) or (m[i][j]==num4) or (m[i][j]==num5) or
  39. (m[i][j]==num6) or (m[i][j]==num7) or (m[i][j]==num8));
  40. num1=m[0][0];
  41. num2=m[0][1];
  42. num3=m[0][2];
  43. num4=m[1][0];
  44. num5=m[1][1];
  45. num6=m[1][2];
  46. num7=m[2][0];
  47. num8=m[2][1];
  48. num9=m[2][2];
  49. }
  50. }
  51. s1=num1+num2+num3;
  52. s2=num4+num5+num6;
  53. s3=num7+num8+num9;
  54. s4=num1+num4+num7;
  55. s5=num2+num5+num8;
  56. s6=num3+num6+num9;
  57. s7=num1+num5+num9;
  58. s8=num2+num5+num7;
  59. //printf("%d ",m[i][j]);
  60. }
  61. while((s1!=15) or (s2!=15) or (s3!=15) or (s4!=15) or (s5!=15) or (num5!=5));
  62. for(i=0;i<3;i++)
  63. {
  64. for(j=0;j<3;j++)
  65. {
  66. printf("%d ",m[i][j]);
  67. }
  68. printf("\n");
  69. }
  70. getch();
  71. }
  72.  



Ahora dejo el codigo 5 *5 =65
ayuda en el error por favor urgente
Código
  1. #include<stdio.h>
  2. #include<conio.h>
  3. #include<stdlib.h>
  4. #include<time.h>
  5.  
  6. main()
  7. {
  8. int s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,m[5][5],i,j,a,num1,num2,num3,num4,num5,num6,num7,num8,num9;
  9. int num10,num11,num12,num13,num14,num15,num16,num17,num18,num19,num20,num21,num22,num23,num24,num25;
  10. srand (time(NULL));
  11. do
  12. {
  13. a=0;
  14. num1=0;
  15. num2=0;
  16. num3=0;
  17. num4=0;
  18. num5=0;
  19. num6=0;
  20. num7=0;
  21. num8=0;
  22. num9=0;
  23. num10=0;
  24. num11=0;
  25. num12=0;
  26. num13=0;
  27. num14=0;
  28. num15=0;
  29. num16=0;
  30. num17=0;
  31. num18=0;
  32. num19=0;
  33. num20=0;
  34. num21=0;
  35. num22=0;
  36. num23=0;
  37. num24=0;
  38. num25=0;
  39.  
  40. s1=0;
  41. s2=0;
  42. s3=0;
  43. s4=0;
  44. s5=0;
  45. s6=0;
  46. s7=0;
  47. s8=0;
  48. s9=0;
  49. s10=0;
  50. s11=0;
  51. s12=0;
  52. for(i=0;i<=4;i++)
  53. {
  54. for(j=0;j<=4;j++)
  55. {
  56. do
  57. {
  58. m[i][j]=rand()%25+1;
  59. }
  60. while((m[i][j]==num1) or (m[i][j]==num2) or (m[i][j]==num3) or (m[i][j]==num4) or (m[i][j]==num5) or
  61. (m[i][j]==num6) or (m[i][j]==num7) or (m[i][j]==num8) or (m[i][j]==num9) or (m[i][j]==num10) or
  62. (m[i][j]==num11) or (m[i][j]==num12) or (m[i][j]==num13) or (m[i][j]==num14) or (m[i][j]==num15) or
  63. (m[i][j]==num16) or (m[i][j]==num17) or (m[i][j]==num18) or (m[i][j]==num19) or (m[i][j]==num20) or
  64. (m[i][j]==num21) or (m[i][j]==num22) or (m[i][j]==num23) or (m[i][j]==num24));
  65. num1=m[0][0];
  66. num2=m[0][1];
  67. num3=m[0][2];
  68. num4=m[0][3];
  69. num5=m[0][4];
  70. num6=m[1][0];
  71. num7=m[1][1];
  72. num8=m[1][2];
  73. num9=m[1][3];
  74. num10=m[1][4];
  75. num11=m[2][0];
  76. num12=m[2][1];
  77. num13=m[2][2];
  78. num14=m[2][3];
  79. num15=m[2][4];
  80. num16=m[3][0];
  81. num17=m[3][1];
  82. num18=m[3][2];
  83. num19=m[3][3];
  84. num20=m[3][4];
  85. num21=m[4][0];
  86. num22=m[4][1];
  87. num23=m[4][2];
  88. num24=m[4][3];
  89. num25=m[4][4];
  90. }
  91. }
  92. s1=num1+num2+num3+num4+num5;
  93. s2=num6+num7+num8+num9+num10;
  94. s3=num11+num13+num13+num14+num15;
  95. s4=num16+num17+num18+num19+num20;
  96. s5=num21+num22+num23+num24+num25;
  97.  
  98. s6=num1+num6+num11+num16+num21;
  99. s7=num2+num7+num13+num17+num22;
  100. s8=num3+num8+num13+num18+num23;
  101. s9=num4+num9+num14+num19+num24;
  102. s10=num5+num10+num15+num20+num25;
  103.  
  104. s11=num1+num7+num13+num18+num25;
  105. s12=num2+num21+num17+num13+num9;
  106. //printf("%d ",m[i][j]);
  107. }
  108. while((s1!=65) or (s2!=65) or (s3!=65) or (s4!=65) or (s5!=65) or (s6!=65) or (s7!=65) or (s8!=65) or (s9!=65) or (num13!=13));
  109. for(i=0;i<5;i++)
  110. {
  111. for(j=0;j<5;j++)
  112. {
  113. printf("%d ",m[i][j]);
  114. }
  115. printf("\n");
  116. }
  117. getch();
  118. }
  119.  
Gracias por la atencion


« Última modificación: 25 Mayo 2016, 14:22 pm por creiko » En línea

JavierScars

Desconectado Desconectado

Mensajes: 116



Ver Perfil
Re: matriz 5*5 no me da error pero no compila
« Respuesta #1 en: 25 Mayo 2016, 14:35 pm »

A simple vista en la parte del for esta el error (creo) estas utilizando componentes del array que no están definidos si te dar cuenta estas con el for cambiándole el valor 25 veces a cada componente del array... El for sólo debería englobar al do while para darle valores al array... Luego si lo deberías poder usar.

Lo otro que te recomiendo es meter esos números en un array y usar más for, así quedaría más legible el código.

Saludos


En línea

Usa lo malo de la vida a tu favor, escala montañas de problemas para deslizarte sobre soluciones, derrumba muros de decepciones para encontrar la libertar de la felicidad,  y quema la leña del fracaso para calentarte con el éxito. Recuerda que sin la oscuridad la luz no brillaría tanto.
creiko

Desconectado Desconectado

Mensajes: 44


Ver Perfil
Re: matriz 5*5 no me da error pero no compila
« Respuesta #2 en: 25 Mayo 2016, 14:54 pm »

podrias ayudarme en esa parte te lo agradeceria
En línea

LaiaxanIV

Desconectado Desconectado

Mensajes: 57


Ver Perfil
Re: matriz 5*5 no me da error pero no compila
« Respuesta #3 en: 25 Mayo 2016, 22:06 pm »

Que tiene que hacer el código exactamente?
A ver si te podemos ayudar a rellenar esa matriz que no parece que se llene correctamente.
En línea

creiko

Desconectado Desconectado

Mensajes: 44


Ver Perfil
Re: matriz 5*5 no me da error pero no compila
« Respuesta #4 en: 25 Mayo 2016, 23:19 pm »

bueno

la matriz va 5*5
con números desde el 1 a 25  sin repetirse que debe dar como resultado 65 en sus columnas , filas y diagonales.

como en el ejemplo del 3*3 que va dese 1 a 9 ( el numero 5 se mantiene en el centro, los demás números al rededor se rotan sin repetirse y dan como resultado 15) corre el programa que dejo ahí arriba y lo veras.



lo que quiero en ves quede 15 debe dar 65
5*5 va desde 1 a 25 ( el numero 13 se debe mantener en el centro, los demas numeros al rededor cambian de posicion sin repetirse y deben dar como resultado 65)


hice los mismo que en e 3*3
cambie a 5*5 y ice tal cual esta en el código anterior no me arroja ningun error pero no me compila
En línea

BloodSharp


Desconectado Desconectado

Mensajes: 813


¡ Hiperfoco !


Ver Perfil WWW
Re: matriz 5*5 no me da error pero no compila
« Respuesta #5 en: 26 Mayo 2016, 00:50 am »

El código no lo entendí para nada lo que se suponga que haga... pero a simple vista se ven el mismo error en varios while... Reemplaza todos los or por ||


B#
En línea



tincopasan


Desconectado Desconectado

Mensajes: 1.286

No es lo mismo conocer el camino que recorrerlo.


Ver Perfil
Re: matriz 5*5 no me da error pero no compila
« Respuesta #6 en: 26 Mayo 2016, 01:09 am »

este es un ejercicio muy viejo de resolución de matrices, nunca lo hubiese hecho como el tuyo y me da fiaca leer todo el código pero aporto uno recontraconocido:

Código
  1. #include <stdio.h>
  2.    #include <stdlib.h>
  3.    #define CUANTOS 5
  4.    int main(int argc, char *argv[])
  5.    {
  6.        int Matriz[CUANTOS][CUANTOS];
  7.        int contador=0;
  8.        int x=0;
  9.        int y=0;
  10.        int vx=0;
  11.        int vy=0;
  12.        int limite=CUANTOS*CUANTOS;
  13.        int limitex = CUANTOS - 1;
  14.        int limitey = CUANTOS - 1;
  15.        for( x=0 ; x<CUANTOS ; x++)
  16.        {
  17.           for( y=0 ; y<CUANTOS ; y++ )
  18.             {
  19.                  Matriz[x][y] = 0;
  20.            }
  21.        }
  22.        x = CUANTOS / 2;
  23.        y = 0;
  24.        for(contador=1;contador<=limite;contador++)
  25.        {
  26.            Matriz[y][x] = contador;
  27.            vx = x;
  28.            vy = y;
  29.            x++;
  30.            if( x > limitex ) x = 0;
  31.            y--;
  32.            if( y < 0 ) y = limitey;
  33.            if (Matriz[y][x]>0)
  34.            {
  35.                x = vx ;
  36.                y = vy +1 ;
  37.            }
  38.        }
  39.        printf("\n Matriz 5x5 \n");
  40.        for( x=0 ; x<CUANTOS ; x++)
  41.        {
  42.             for( y=0 ; y<CUANTOS ; y++ )
  43.             {
  44.                  printf("|%5d|",Matriz[x][y]);
  45.             }
  46.             printf("\n");
  47.        }
  48.        system("PAUSE");
  49.      return 0;
  50.    }
  51.  
  52.  

supongo que es eso lo que buscas.
En línea

creiko

Desconectado Desconectado

Mensajes: 44


Ver Perfil
Re: matriz 5*5 no me da error pero no compila
« Respuesta #7 en: 26 Mayo 2016, 07:29 am »

ese codigo lo tengo pero no me sirve
revisa el primer codigo 3*3
y veras las formas que quiero
pero en 5*5 amigo
En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: matriz 5*5 no me da error pero no compila
« Respuesta #8 en: 26 Mayo 2016, 18:14 pm »

Generar un cuadrado mágico de 5x5 llenándolo de números aleatorios puede llevarte mucho tiempo... mucho.
De todas formas tienes unos cuántos fallos en el cálculo de las sx y de los numx
Tu dices
Código
  1. s3=num11+num13+num13+num14+num15;
sumas dos veces el num13 y debe ser
Código
  1. s3=num11+num12+num13+num14+num15;
En s9, s11 y s12 vuelves a tener sendos errores.

Después la condición while del primer do termina con m[j]==num24) cuándo tienes 25 números.
La condición while del último do solo miras la condición hasta s9, te quedan demás condiciones hasta s12.

De todas formas, una fuerza bruta para resolver el cuadrado puede llevar muchísimo tiempo.
En línea

HardForo

Desconectado Desconectado

Mensajes: 219


HardForo.com


Ver Perfil WWW
Re: matriz 5*5 no me da error pero no compila
« Respuesta #9 en: 26 Mayo 2016, 21:41 pm »

Puede llevar mucho tiempo, excepto se use metaprogramación  :xD

Aqui puedes ver como se hace exactamente este mismo programa mediante un generador de código en C++
« Última modificación: 26 Mayo 2016, 23:34 pm por HardForo » En línea

HardForo:  foro de Hardware y programación

Se buscan Mods y colaboradores *
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Programa que compila, pero error en consola
Java
AndenBomber 1 2,781 Último mensaje 29 Mayo 2008, 19:49 pm
por HadesDark
Ejercicio compila pero no se ejecuta « 1 2 »
Programación C/C++
David8 15 8,910 Último mensaje 20 Abril 2014, 22:47 pm
por David8
Duda C++. Compila pero no corre.
Programación C/C++
Gaspi 9 4,414 Último mensaje 20 Febrero 2015, 20:58 pm
por Gaspi
operaciones con fracciones [me compila pero tiene un fallo y no lo encuentro]
Programación C/C++
snowspring 4 2,611 Último mensaje 27 Febrero 2018, 14:47 pm
por snowspring
Duda con mi código, compila pero el resultado es erróneo
Programación C/C++
estudianteuv 4 2,422 Último mensaje 24 Mayo 2018, 00:45 am
por estudianteuv
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines