Advertisement
Guest User

Untitled

a guest
May 23rd, 2013
192
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.54 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3.  
  4. typedef struct _dat{
  5. int d, m, g;
  6. int br;
  7. }datum;
  8.  
  9. int provjera(datum *x, int i, int d, int m, int g){
  10. int j;
  11.  
  12. for(j=0; j<i; j++)
  13. if(x[j].d==d && x[j].m==m && x[j].g==g)
  14. {
  15. (x[j].br)++;
  16. return 0;
  17. }
  18. return 1;
  19. }
  20. void swap(datum *x, datum *y){
  21. datum t;
  22. t=*x;
  23. *x=*y;
  24. *y=t;
  25. }
  26.  
  27. void sort(datum *x, int n){
  28. int i, j;
  29.  
  30. for(i=0; i<n-1; i++)
  31. for(j=i+1; j<n; j++){
  32. if(x[i].g > x[j].g) swap(&x[i], &x[j]);
  33. else if(x[i].g==x[j].g)
  34. {
  35. if(x[i].m==x[j].m && x[i].d > x[j].d) swap(&x[i], &x[j]);
  36. else if(x[i].m > x[j].m) swap(&x[i], &x[j]);
  37. }
  38. }
  39. }
  40.  
  41. int main(void){
  42. FILE *in, *out;
  43. datum* x;
  44. int n, i;
  45. int d, m, g;
  46. in=fopen("nsfyllks.in", "r");
  47. if(in==NULL)
  48. {
  49. printf("Greska pri otvaranju datoteke za citanje!\n");
  50. exit(1);
  51. }
  52.  
  53. out=fopen("nsfyllks.out", "w");
  54. if(out==NULL)
  55. {
  56. fclose(in);
  57. printf("Greska pri otvaranju datoteke za pisanje!\n");
  58. exit(1);
  59. }
  60. fscanf(in, "%d", &n);
  61. i=0;
  62. x=(datum*) malloc(sizeof(datum));
  63. while(fscanf(in, " %d.%d.%d.", &d, &m, &g) > 0)
  64. {
  65. if(i==0)
  66. {
  67. x[i].d=d;
  68. x[i].m=m;
  69. x[i].g=g;
  70. x[i].br=1;
  71. i++;
  72. }
  73. else if(provjera(x, i, d, m, g))
  74. {
  75. x=(datum*) realloc(x, sizeof(datum));
  76. x[i].d=d;
  77. x[i].m=m;
  78. x[i].g=g;
  79. x[i].br=1;
  80. i++;
  81. }
  82. }
  83. n=i;
  84. sort(x, n);
  85.  
  86. for(i=0; i<n; i++)
  87. {
  88. fprintf(out, "%d#%d.%d.%d.", x[i].br, x[i].d, x[i].m, x[i].g);
  89. fprintf(out, "\n");
  90. }
  91.  
  92. fclose(in);
  93. fclose(out);
  94. free(x);
  95. return 0;
  96. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement