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

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


  Mostrar Mensajes
Páginas: [1]
1  Programación / Programación C/C++ / Re: encontrar el ultimo valor de la matriz recorrida en: 3 Marzo 2014, 21:20 pm
Jordiiii te pillé jajajaja, suerte con esto!
2  Programación / Programación C/C++ / Re: Problema contador en C en: 3 Marzo 2014, 12:01 pm
Pues con esto mi parte del programa ya está acabado!!
Gracias de verdad, sin tu ayuda hubiese sacado un 0 jjaja
3  Programación / Programación C/C++ / Re: Problema contador en C en: 3 Marzo 2014, 00:28 am
Leosansan, no sabes como te lo agradezco, sin ti aún estaría estancado en el principio  ;D

lfgmespino, supongo que eso es el apartado de lanzar una pelota, ese ya lo tengo hecho :D, para poner un codigo donde pone GeSHI tienes que elegir C

Por último, ya sólo tengo un fallo más, y con eso ya habré terminado el programa y no os daré más por saco...

A la hora de comprobar si la nueva tabla es legal (que siempre caerá la pelota), tengo que mirar si nunca se cumple esto:



entonces para solucionar esto pongo en el switch:

Código
  1. case 2:
  2.  
  3.  
  4. while(i>=51 && j>=51){
  5. if (matriu[i][j]==1){
  6. if (matriu[i][j]==matriu[i+1][j] && matriu[i][j]==matriu[i][j+1] && matriu[i][j]==matriu[i][j-1])
  7. error=1;
  8. break;
  9.  
  10. }          
  11.         }

Pero actua como si nada, como si estuviera correcto
Error o tengo inicializado en el principio como 0
4  Programación / Programación C/C++ / Re: Problema contador en C en: 2 Marzo 2014, 21:47 pm
Me sigue saliendo mal, exactamante...

Si pongo por ejemplo
Fila ---> 5
Columna ---> 15

La columna me saldrá bien, cambiará el valor en a columna 15, pero la fila siempre me sale la primera, o directamente no me sale.

Mirad, aquí he puesto las coordenadas [50,50]:



Pero me sale en el [0,50] :S


Y otra cosa que me doy cuenta que falla, al poner varios cambios de valor, los antiguos se me borran, solo cambia el ultimo valor que he introducido.

Definitivamente, la programación no es lo mio jjaja
5  Programación / Programación C/C++ / Re: Problema contador en C en: 2 Marzo 2014, 20:32 pm
Aún cambiandolo me sigue sin cambiarse :S

Esto es todo el programa entero:

Pero el problema es a partir del void cambiartabla

Código
  1. #include <stdio.h>
  2.  
  3. void imprimir (int matriu[50][50]);
  4. void pelota (int matriu[50][50]);
  5. void cambiartabla (int matriu[50][50]);
  6.  
  7. int main()
  8. {
  9. int num,inicio,i,j,cont=0,fila,columna,error=0;
  10. char direccion;
  11.  
  12. int matriu[50][50]={
  13. {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
  14. {0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0},
  15. {0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0},  
  16. {0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0},  
  17. {0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0},  
  18. {0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
  19. {0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
  20. {0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},  
  21. {0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},  
  22. {0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
  23. {0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
  24. {0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
  25. {0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},  
  26. {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},  
  27. {0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},  
  28. {0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
  29. {0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
  30. {0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},  
  31. {0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},  
  32. {0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
  33. {0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
  34. {0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0},
  35. {0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},  
  36. {0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},  
  37. {0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},  
  38. {0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
  39. {0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
  40. {0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},  
  41. {0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},  
  42. {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
  43. {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
  44. {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
  45. {0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},  
  46. {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},  
  47. {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},  
  48. {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
  49. {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
  50. {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},  
  51. {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},  
  52. {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
  53. {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
  54. {0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
  55. {0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},  
  56. {0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},  
  57. {0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},  
  58. {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
  59. {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
  60. {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},  
  61. {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},  
  62. {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
  63. };
  64.  
  65. while(num!=5)
  66. {
  67. printf("\n");
  68.        printf("Que acción desea realizar:\n");
  69. printf("\t1.- Mostrar la tabla.\n");
  70. printf("\t2.- Tirar una bola.\n");
  71. printf("\t3.- Tirar 20 bolas.\n");
  72. printf("\t4.- Cambiar la tabla.\n");
  73. printf("\t5.- Salida.\n");
  74.  
  75. scanf("%d",&num);
  76.  
  77. switch(num)
  78. {
  79. case 1:
  80.  
  81. imprimir (matriu);
  82. break;
  83.  
  84.  
  85. case 2:
  86. pelota (matriu);
  87. break;
  88.  
  89.  
  90. case 3:
  91. printf("caso 3\n");
  92. break;
  93.  
  94.  
  95. case 4:
  96. cambiartabla (matriu);
  97. break;
  98.  
  99.  
  100. case 5:
  101. printf("Adios.\n");
  102. printf("\n");
  103. break;
  104.  
  105.  
  106. default:
  107. printf("El numero introducido no pertenece al menú, intentelo de nuevo.\n");
  108.  
  109.  
  110. }
  111. }
  112. }
  113.  
  114.  
  115. void imprimir (int matriu[50][50]){
  116. int i,j;
  117.  
  118. for (i = 0; i < 50; i++){
  119. for (j = 0; j < 50; j++){
  120.  
  121.  
  122. if(matriu[i][j]==1)
  123.           printf("X",matriu[i][j]);
  124.     else
  125.                 printf(".",matriu[i][j]);        
  126.  
  127. }
  128. printf ("\n");
  129. }}
  130.  
  131. void pelota (int matriu[50][50]){
  132.  
  133. int inicio,i,j,cont=0;
  134. char direccion;
  135.  
  136. do{
  137.    printf("\nIntroducir el numero de columna por el cual desea lanzar la primera bola (1-50): ");
  138.    scanf("%d",&inicio);
  139.  }while(inicio>=51);
  140.  inicio--;
  141.  
  142.  do{
  143.    printf("\nEn caso de encontrarse con un obstaculo, en que direccion\n quiere que se dirija la bola, derecha (D-d) o izquierda (I-i): ");
  144.    scanf(" %c", &direccion);
  145.  }while(direccion!='D' && direccion!='d' && direccion!='I' && direccion!='i');
  146.  
  147.  i=0,j=inicio,cont=2;
  148.  matriu[i][j]=cont++;
  149.  
  150.  while(i<49){
  151.  
  152.    if (j==-1)
  153.    matriu[i][++j]=cont++;
  154. else if (j==50)
  155.  matriu[i][--j]=cont++;
  156.    else if (matriu[i+1][j]==0)
  157.      matriu[++i][j]=cont++;
  158.    else if (direccion=='D' || direccion=='d' && matriu[i][j+1]==0 )
  159.      matriu[i][++j]=cont++;
  160.    else if (direccion=='D' || direccion=='d' && matriu[i][j+1]==1 )
  161.      matriu[i][--j]=cont++;
  162.    else if (direccion=='I' || direccion=='i' && matriu[i][j-1]==0)
  163.      matriu[i][--j]=cont++;
  164.    else if (direccion=='I' || direccion=='i' && matriu[i][j-1]==1)
  165.      matriu[i][++j]=cont++;
  166.  }
  167.  
  168.  for(i=0;i<50;i++)
  169.  {
  170.     printf("\t\t");
  171.     for(j=0;j<50;j++)
  172.      {
  173.         if(matriu[i][j]==1)
  174.            printf("X ");
  175.         else if(matriu[i][j]==0 )
  176.            printf(". ");
  177.         else
  178.            printf("%d ",matriu[i][j]-2);
  179.     }
  180.     printf("\n");
  181.  }
  182. }
  183.  
  184.  
  185. void cambiartabla (int matriu[50][50]){
  186.  
  187. int i,j,fila,columna,error=0;
  188. char seguir;
  189.  
  190. while(seguir!=2)
  191. {
  192. printf("\n");
  193.        printf("Presiona 1 si quieres seguir cambiando valores.\n");
  194. printf("Presiona 2 si quieres ver la tabla.\n");
  195.  
  196. scanf("%d",&seguir);
  197.  
  198. switch(seguir)
  199. {
  200. case 1:
  201.  
  202. do{
  203.   printf("\nIntroducir la fila del valor que quieres cambiar (1-50): ");
  204.     scanf("%d",&columna);
  205.   printf("\nIntroducir la columna del valor que quieres cambiar (1-50): ");
  206.   scanf("%d",&fila);
  207. }while(columna>=51 && fila>=51);
  208. break;
  209.  
  210. default:
  211. printf("El numero introducido es incorrecto.\n");
  212.  
  213. }
  214. }
  215.  
  216.  
  217.  i=columna,j=fila;  
  218.  
  219.   if (matriu[i][j] == 0)
  220.     matriu[i][j] == 1;
  221.    else matriu[i][j] = 0;
  222.  
  223.  
  224.  while(i<49){
  225.  
  226.    if (matriu[i+1][j]==1 && matriu[i-1][j]==1 && matriu[i][j-1]==1)
  227. printf("ERROR");
  228. error=1;
  229. break;
  230.  }
  231.  
  232.  for(i=0;i<50;i++)
  233.  {
  234.     printf("\t\t");
  235.     for(j=0;j<50;j++)
  236.      {
  237.         if(matriu[i][j]==1)
  238.            printf("X");
  239.         else if(matriu[i][j]==0 )
  240.            printf(".");
  241.     }
  242.     printf("\n");
  243.  }
  244. }

De nuevo gracias!!!
6  Programación / Programación C/C++ / Re: Problema contador en C en: 2 Marzo 2014, 20:09 pm
Muchiiiisimas gracias! No sabes cuanto me has ayudado, ahora tengo otro problema y  es que en una matriz de 50x50 haga que el programa pida una fila y columna de algun valor que desea modificar, de forma que si antes habia un 0, se convertirá en un 1 (y por tanto un obstaculo) y viceversa.
Ademas el programa debe comprobar que la bola siempre caerá, y si es legal (que la bola siempre cae) enseñar la nueva tabla.

Tengo esto:

Código
  1. void cambiartabla (int matriu[50][50]){
  2.  
  3. int i,j,fila,columna,error=0;
  4. char seguir;
  5.  
  6. while(seguir!=2)
  7. {
  8. printf("\n");
  9.        printf("Presiona 1 si quieres seguir cambiando valores.\n");
  10. printf("Presiona 2 si quieres ver la tabla.\n");
  11.  
  12. scanf("%d",&seguir);
  13.  
  14. switch(seguir)
  15. {
  16. case 1:
  17.  
  18. do{
  19.   printf("\nIntroducir la fila del valor que quieres cambiar (1-50): ");
  20.     scanf("%d",&columna);
  21.   printf("\nIntroducir la columna del valor que quieres cambiar (1-50): ");
  22.   scanf("%d",&fila);
  23. }while(columna>=51 && fila>=51);
  24. break;
  25.  
  26. default:
  27. printf("El numero introducido es incorrecto.\n");
  28.  
  29. }
  30. }
  31.  
  32.  
  33.  i=columna,j=fila;  
  34.  
  35.   if (matriu[i][j] = 0)
  36.     matriu[i][j] = 1;
  37.    else matriu[i][j] = 0;
  38.  
  39.  
  40.  while(i<49){
  41.  
  42.    if (matriu[i+1][j]==1 && matriu[i-1][j]==1 && matriu[i][j-1]==1)
  43. printf("ERROR");
  44. error=1;
  45. break;
  46.  }
  47.  
  48.  for(i=0;i<50;i++)
  49.  {
  50.     printf("\t\t");
  51.     for(j=0;j<50;j++)
  52.      {
  53.         if(matriu[i][j]==1)
  54.            printf("X");
  55.         else if(matriu[i][j]==0 )
  56.            printf(".");
  57.     }
  58.     printf("\n");
  59.  }
  60. }

Pero al compilar me sigue dando la tabla igual, no me cambia los valores, por tanto creo que el fallo está aquí:

Código
  1.  i=columna,j=fila;  
  2.  
  3.   if (matriu[i][j] = 0)
  4.     matriu[i][j] = 1;
  5.    else matriu[i][j] = 0;
  6.  

Como lo puedo solucionar???
7  Programación / Programación C/C++ / Re: Problema contador en C en: 1 Marzo 2014, 21:10 pm
Exacto, por cada paso que da hacia bajo o hacia derecha/izquierda sumar 1
8  Programación / Programación C/C++ / Re: Problema contador en C en: 1 Marzo 2014, 20:21 pm
Gracias!!!! A ver ai ahora...

Código
  1.  do{
  2.  printf("\nIntroducir el numero de columna por el cual desea lanzar la primera bola: ");
  3.  scanf("%d",&inicio);
  4.  }while(inicio>=9);
  5.  
  6.  do{
  7.  printf("\nEn caso de encontrarse con un obstaculo, en que direccion quiere que se dirija la bola, derecha (D) o izquierda (I): ");
  8.  fflush(stdin);
  9.  scanf("%c", &direccion);
  10.  }while(direccion!='D' && direccion!='d' && direccion!='I' && direccion!='i');
  11.  
  12.  inicio=matriu[0][inicio];
  13.  
  14.  contador=0;
  15.  while(i++){
  16.  contador +=1;
  17.  }
  18.  
  19.  for(i=0;i<10;i++)
  20.  {
  21.     printf("\t");
  22.     for(j=0;j<10;j++)
  23.         {
  24.          //if(matriu[i][j]==matriu[0][inicio])
  25.          //  printf("%d ",contador);
  26.         if(matriu[i][j]==1)
  27.            printf("X ");
  28.  else
  29.  {
  30.  if(matriu[i][j] == matriu[i][inicio])
  31.           printf("&d",contador");
  32.          else (matriu[i][j]==0 && matriu[i][j]==0 != matriu[i][inicio])
  33.              printf(". ");
  34.     }}printf("\n");
  35.  }
  36.  
  37.  contador=0;
  38.  while(i++){
  39.    contador +=1;
  40.  }
  41. }
9  Programación / Programación C/C++ / Re: Problema contador en C en: 1 Marzo 2014, 19:50 pm
Pero sigo sin saber como poder "imprimir" el contador y que vaya bajando, solo llevo un par de semanas programando, he pensado algo así:

  do{
  printf("\nIntroducir el numero de columna por el cual desea lanzar la primera bola: ");
  scanf("%d",&inicio);
  }while(inicio>=9);

  do{
  printf("\nEn caso de encontrarse con un obstaculo, en que direccion quiere que se dirija la bola, derecha (D) o izquierda (I): ");
  fflush(stdin);
  scanf("%c", &direccion);
  }while(direccion!='D' && direccion!='d' && direccion!='I' && direccion!='i');
  
  inicio=matriu[0][inicio];

  contador=0;
  while(i++){
  contador +=1;
  }


  intercambia(&inicio, &contador);
  

 for(i=0;i<10;i++)
  {
     printf("\t");
        for(j=0;j<10;j++)
         {
            if(matriu[j]==1)
            printf("X ");
              else
              {
              if(matriu(i)[j] == matriu(i)[inicio])
                     printf("&d",contador");
                else (matriu(i)[j]==0 && matriu(i)[j]==0 != matriu(i)[inicio])
                    printf(". ");
              }   
       }printf("\n");
  }
}
El problema es lo que está en negrita, no sé como puedo hacer que imprima el contador por la posición que elija el usuario, solo se me ocurre matriu[inicio] y dudo que esté bien

EDITO: Todas las (i) de la matriz estan en parentesis pq al publicarla aqui se me comia si lo ponia en corchetes
10  Programación / Programación C/C++ / Problema contador en C en: 1 Marzo 2014, 18:17 pm
Buenas, tengo una matriz de 0 y 1, donde los 0 se convierten en "." y los 1 en "X", pues tengo que dejar caer una bola desde arriba y como si fuera un pinball ir rebotando simulando las X como obstaculos, algo así:



Pero no consigo aplicar el contador que vaya bajando, todo el rato me da error, alguien me puede ayudar?

Esto es lo que llevo:


#include <stdio.h>

void intercambia(int *a, int *b);
void dir(char c);

int main()
{
  int inicio,i,j,contador;
  char direccion;

  int matriu[10][10]={
  {0,0,0,0,0,0,0,0,0,0},
  {0,1,0,0,1,0,0,0,1,0},
  {0,1,0,1,0,0,0,1,0,0},
  {0,1,0,0,0,0,1,0,0,0},
  {0,0,0,0,0,0,0,0,0,1},
  {0,1,1,1,1,0,0,0,1,0},
  {0,0,0,0,0,0,0,1,0,0},
  {0,0,0,0,0,0,1,0,0,0},
  {0,0,0,0,0,1,0,0,0,0},
  {0,0,0,0,0,0,0,0,0,0},
  };

  do{
  printf("\nIntroducir el numero de columna por el cual desea lanzar la primera bola: ");
  scanf("%d",&inicio);
  }while(inicio>=9);

  do{
  printf("\nEn caso de encontrarse con un obstaculo, en que direccion quiere que se dirija la bola, derecha (D) o izquierda (I): ");
  fflush(stdin);
  scanf("%c", &direccion);
  }while(direccion!='D' && direccion!='d' && direccion!='I' && direccion!='i');
   
  inicio=matriu[0][inicio];

  contador=0;
  while(i++){
  contador +=1;
  }


  intercambia( &inicio, &contador);
 

  for(i=0;i<10;i++)
  {
     printf("\t");
        for(j=0;j<10;j++)
         {
          //if(matriu[j]==matriu[0][inicio])
          //  printf("%d ",contador);
            if(matriu[j]==1)
            printf("X ");
          if(matriu[j]==0)
                printf(". ");
         }
     printf("\n");
  }

  contador=0;
  while(i++){
    contador +=1;
  }
}

void intercambia(int *a,int *b){ //a será el valor de la matriz y b el valor del contador

  *a=*b;
}

void dir(char c){
   int j;
   char direccion;

  if(direccion!='D' && direccion!='d'){
    j+=1;
  }
  else
    j-=1;
}

Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines