Advertisement
Guest User

Untitled

a guest
Jan 18th, 2017
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.45 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <stdlib.h>
  4.  
  5. typedef struct sorok{
  6. int x;
  7. int y;
  8. char irany;
  9. char szo[51];
  10. }ELEM;
  11.  
  12. int rendez(const void *a, const void *b)
  13. {
  14. ELEM *x = (ELEM*)a;
  15. ELEM *y = (ELEM*)b;
  16.  
  17. if(x->x < y->x ) return -1;
  18. if(x->x > y->x ) return 1;
  19.  
  20. if(x->y < y->y) return -1;
  21. if(x->y > y->y) return 1;
  22.  
  23. if(x->irany < y->irany) return 1;
  24. if(x->irany > y->irany) return -1;
  25.  
  26. return 0;
  27. }
  28.  
  29.  
  30. int main()
  31. {
  32. int N,M,i,j;
  33. char sor[50],*token;
  34.  
  35. gets(sor);
  36.  
  37. token=strtok(sor," ");
  38. N=atoi(token);
  39.  
  40. token=strtok(NULL," ");
  41. M=atoi(token);
  42.  
  43.  
  44. char matrix[N][M];
  45.  
  46. for(i=0;i<N;i++)
  47. {
  48. gets(sor);
  49. for(j=0;j<M;j++)
  50. {
  51. matrix[i][j]=sor[j];
  52. }
  53. }
  54.  
  55. char buffer[50];
  56. int index=0,t_index=0;
  57. ELEM tomb[25000];
  58. int x_kezd=0,y_kezd=0,flag=0;
  59.  
  60. //1 - vízszintes bejárás
  61.  
  62. for(i=0;i<N;i++)
  63. for(j=0;j<M;j++)
  64. {
  65. if(matrix[i][j]!='*')
  66. {
  67. buffer[index]=matrix[i][j];
  68. index++;
  69.  
  70. if(flag==0)
  71. {
  72. x_kezd=i;
  73. y_kezd=j;
  74.  
  75. flag++;
  76. }
  77. }
  78.  
  79. if(matrix[i][j]=='*' || j==M-1)
  80. {
  81. buffer[index]='\0';
  82.  
  83. if(strlen(buffer)>=2)
  84. {
  85. tomb[t_index].irany='V';
  86. tomb[t_index].x=x_kezd+1;
  87. tomb[t_index].y=y_kezd+1;
  88. strcpy(tomb[t_index].szo,buffer);
  89. t_index++;
  90. }
  91.  
  92. index=0;
  93. flag=0;
  94. }
  95. }
  96.  
  97.  
  98. // 2 - függőlegesek
  99.  
  100. for(j=0;j<M;j++)
  101. for(i=0;i<N;i++)
  102. {
  103. if(matrix[i][j]!='*')
  104. {
  105. buffer[index]=matrix[i][j];
  106. index++;
  107.  
  108. if(flag==0)
  109. {
  110. x_kezd=i;
  111. y_kezd=j;
  112.  
  113. flag=1;
  114. }
  115. }
  116.  
  117. if(matrix[i][j]=='*' || i==N-1)
  118. {
  119. buffer[index]='\0';
  120.  
  121. if(strlen(buffer)>=2)
  122. {
  123. tomb[t_index].irany='F';
  124. tomb[t_index].x=x_kezd+1;
  125. tomb[t_index].y=y_kezd+1;
  126. strcpy(tomb[t_index].szo,buffer);
  127. t_index++;
  128. }
  129.  
  130. index=0;
  131. flag=0;
  132. }
  133.  
  134. }
  135.  
  136. qsort(tomb,t_index,sizeof(ELEM),rendez);
  137.  
  138. for(i=0;i<t_index;i++)
  139. printf("%d;%d;%c;%s\n",tomb[i].x,tomb[i].y,tomb[i].irany,tomb[i].szo);
  140.  
  141.  
  142. return 0;
  143. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement