Advertisement
machkovskitomche

Nastani struct

Mar 29th, 2019
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.26 KB | None | 0 0
  1. #include <stdio.h>
  2. #include<stdlib.h>
  3. #include <string.h>
  4.  
  5. struct datum
  6. {
  7.     int den;
  8.     int mesec;
  9.     int godina;
  10.     int cas;
  11.     int min;
  12. };
  13. struct lokacija
  14. {
  15.     char drzava[50];
  16.     char grad [50];
  17.     char adresa[50];
  18. };
  19. struct nastan
  20. {
  21.     char ime[30];
  22.     struct datum datump;
  23.     struct datum datumk;
  24.     struct lokacija lok;
  25.     char opis[100];
  26.     int status;
  27. };
  28.  
  29.     void dodadi_nastan(nastan *N, int *n,nastan n1)
  30. {
  31.     int i;
  32.     if(*n==99)
  33.     {
  34.         for(i=0;i<*n;i++)
  35.         {
  36.             N[i]=N[i+1];//brisenje na najstariot nastan(pomestuvanje vo levo)
  37.         }
  38.         N[*n]=n1;//mora da izbriseme nesto za da dodademe nov
  39.         return 1;
  40.     }
  41.     else
  42.     {
  43.         N[*n+1]=n1;
  44.         *n+1;
  45.         return 0;
  46.     }
  47. }
  48.     int ponov_datum(datum d1, datum d2)//pomosna funkcija za da sporedi koj od 2 datumi e ponov
  49. {
  50. if(d1.godina>d2.godina)
  51. {
  52.     return 1;
  53. }
  54. else
  55. {
  56. else if(d1.godina<d2.godina)
  57. {
  58.     return 0;
  59. }
  60. else
  61. {        
  62. if(d1.mesec>d2.mesec)
  63. {
  64.     return 1;
  65. }
  66. else if(d1.godina<d2.godina)
  67. {
  68.     return 0;
  69. }
  70. else
  71. {
  72. if(d1.den>d2.den)
  73. {
  74.     return 1;
  75. }
  76. else if(d1.den<d2.den)
  77. {
  78.     return 0;
  79. }
  80. else
  81. {
  82.     if(d1.min<d2.min)
  83.     {
  84.         return 1;
  85.     }
  86.     else if(d1.min>d2.min)
  87.     {
  88.     return 0;
  89.     }
  90. }
  91. }
  92. }
  93. }
  94. }
  95.     void sort(nastan *l,int N)//hronoloshko sortiranje
  96.     {
  97.     nastan pom;
  98.     int i,j;
  99.     for(i=0;i<n;i++)
  100.     {
  101.         for(j=i+1;j<n;j++)
  102.         {
  103.             if(ponov_datum(l[j].poc,l[i].poc))
  104.             {
  105.                 pom=l[j];
  106.                 l[j]=l[i];
  107.                 l[i]=pom;
  108.             }
  109.         }
  110.     }
  111.     }
  112.     void listaj(nastan *l,int N,int t)
  113.     {
  114.         datum P;
  115.         int i,j;
  116.         void sort(l,N);
  117.         if(t==0)
  118.         {
  119.             printf("Vnesi go denesniot datum vo format den,mesec,godina,cas,minuta");
  120.             scanf("%d %d %d %d %d",&P.den,&P.mesec,&P.godina,&P.cas,&P.min);
  121.             for(i=0;i<N;i++)
  122.             {
  123.             printf("%s%s%s%s%s, %d\;"l[i].ime,l[i].status,l[i].opis,l[i].lok.drzava,l[i].lok.grad,l[i].lok.adresa,l[i].status);
  124.             }
  125.         }
  126.         else
  127.             {
  128.             printf("Vnesi datum");
  129.              scanf("%d %d %d %d %d",&P.den,&P.mesec,&P.godina,&P.cas,&P.min);
  130.              for(i=0;i<N;i++)
  131.              {
  132.                  if(ponov_datum(l[i].poc,P))
  133.                  {
  134.                    printf("%s%s%s%s%s, %d\;"l[i].ime,l[i].status,l[i].opis,l[i].lok.drzava,l[i].lok.grad,l[i].lok.adresa,l[i].status);  
  135.                  }
  136.              }
  137.         }
  138.     }
  139.     void promeni(nastan *l);//promenuvanje na status od nezavrsen vo zavrsen[1-zavrsen,0-nezavrsen]
  140.     {
  141.         if(l->status=0)
  142.         {
  143.             l->status=1;
  144.         }
  145.     }
  146.     int main()
  147.     {
  148.         nastan lista[100],pom;
  149.         int N,i,j;
  150.         N=0;
  151.         while(1)//nepoznat broj na nastani
  152.         {
  153.             printf("Dali ke vneses nov nastan??   0/1");
  154.             scanf("%d",&i);
  155.             if(i==0) break;
  156.             scanf("%s%d%d%d%d%d%d%d.......);
  157.            dodadi(lista &N,pom);
  158.        }
  159.        for(i=0;i<N/2,i++)
  160.        {
  161.            promeni(&lista[i]);
  162.        }
  163.        listaj(lista,N,0);
  164.        return 0;
  165.        }
  166.        }
  167.    }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement