Advertisement
Motocelium

colocviu calendar

Jan 15th, 2024 (edited)
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.71 KB | None | 0 0
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3.  
  4. struct calendar
  5. {
  6.     char *eveniment;
  7.     int data;
  8. }*a;
  9.  
  10. int string_compare(char *s1, char *s2)
  11. {
  12.     int i=0, j=0;
  13.     for(; *(s1+i) && *(s2+j); i++, j++)
  14.         if(*(s1+i)>*(s2+j))
  15.             return 1;
  16.         else if(*(s1+i)<*(s2+j))
  17.             return -1;
  18.    
  19.     if(*(s1+i))
  20.         return 1;
  21.     if(*(s2+j))
  22.         return -1;
  23.    
  24.     return 0;
  25. }
  26.  
  27. void citire(int n)
  28. {
  29.     a=(struct calendar*)malloc((n+1)*sizeof(struct calendar));
  30.         for(int i=0; i<n; i++)
  31.             (a+i)->eveniment=(char*)malloc(265*sizeof(char));
  32.            
  33.         for(int i=0; i<n; i++)
  34.         {
  35.             scanf("%*c%[^\n]s",(a+i)->eveniment);
  36.             scanf("%d", &(a+i)->data);
  37.         }
  38. }
  39.  
  40. void afisare(int n)
  41. {
  42.     for(int i=0; i<n; i++)
  43.         printf("%s %d\n", (a+i)->eveniment, (a+i)->data);
  44. }
  45.  
  46. int main()
  47. {
  48.     int test, n, poz;
  49.  
  50.     scanf("%d", &test);
  51.  
  52.     switch(test)
  53.     {
  54.         case 1://citire + afisare
  55.             scanf("%d", &n);
  56.             citire(n);
  57.             afisare(n);
  58.            
  59.             break;
  60.  
  61.         case 2://citire + sortare + aisare
  62.             scanf("%d", &n);
  63.             citire(n);
  64.            
  65.             for(int i=0; i<n-1; i++)
  66.                 for(int j=i+1; j<n; j++)
  67.                     if((a+i)->data>(a+j)->data)
  68.                     {
  69.                         struct calendar aux;
  70.                         aux=*(a+i);
  71.                         *(a+i)=*(a+j);
  72.                         *(a+j)=aux;
  73.                     }
  74.                    
  75.             afisare(n);
  76.            
  77.             break;
  78.  
  79.         case 3://strcmp
  80.             char *s1, *s2;
  81.             s1=(char*)malloc(256*sizeof(char));
  82.             s2=(char*)malloc(256*sizeof(char));
  83.            
  84.             scanf("%*c%[^\n]s",s1);
  85.             scanf("%*c%[^\n]s",s2);
  86.            
  87.             printf("%d", string_compare(s1, s2));
  88.            
  89.             break;
  90.  
  91.         case 4://adauga evenimentul din poz i
  92.             scanf("%d", &n);
  93.             citire(n);
  94.            
  95.             poz;
  96.             struct calendar b;
  97.             b.eveniment=(char*)malloc(265*sizeof(char));
  98.             scanf("%*c%[^\n]s",b.eveniment);
  99.             scanf("%d", &b.data);
  100.             scanf("%d", &poz);
  101.            
  102.             for(int i=n; i>=poz; i--)
  103.                 *(a+i)=*(a+(i-1));
  104.             *(a+poz)=b;
  105.             n++;
  106.            
  107.             afisare(n);
  108.  
  109.             break;
  110.  
  111.         case 5://sterge evenimentul x
  112.             scanf("%d", &n);
  113.             citire(n);
  114.            
  115.             char *s;
  116.             s=(char*)malloc(256*sizeof(char));
  117.             scanf("%*c%[^\n]s",s);
  118.            
  119.             poz=-1;
  120.            
  121.             for(int i=0; i<n; i++)
  122.                 if(string_compare(s, (a+i)->eveniment)==0)
  123.                     poz=i, i=n;
  124.            
  125.             if(poz>0)
  126.             {
  127.                 for(int i=poz; i<n-1; i++)
  128.                     *(a+i)=*(a+(i+1));
  129.                 n--;
  130.             }
  131.            
  132.             afisare(n);
  133.             break;
  134.     }
  135. }
  136.  
  137.  
  138. /*
  139. ////1
  140. 1
  141. 5
  142. colocviu pc
  143. 20240117
  144. test chimie
  145. 20240119
  146. test fizica
  147. 20240108
  148. partial analiza
  149. 20231125
  150. examen analiza
  151. 20240122
  152.  
  153. ///2
  154. 2
  155. 5
  156. colocviu pc
  157. 20240117
  158. test chimie
  159. 20240119
  160. test fizica
  161. 20240108
  162. partial analiza
  163. 20231125
  164. examen analiza
  165. 20240122
  166.  
  167. ///3
  168. 3
  169. asdddd
  170. asddd
  171.  
  172. ///4
  173. 4
  174. 5
  175. colocviu pc
  176. 20240117
  177. test chimie
  178. 20240119
  179. test fizica
  180. 20240108
  181. partial analiza
  182. 20231125
  183. examen analiza
  184. 20240122
  185. examen peda
  186. 20240123
  187. 3
  188.  
  189. ///5
  190. 5
  191. 5
  192. colocviu pc
  193. 20240117
  194. test chimie
  195. 20240119
  196. test fizica
  197. 20240108
  198. partial analiza
  199. 20231125
  200. examen analiza
  201. 20240122
  202. partial analiza
  203.  
  204.  
  205.  
  206. */
Tags: colocviu
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement