Advertisement
Stefan1999

Autobuske stanice

May 20th, 2017
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.85 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. /*
  5. Nizom A su data rastojanja od pocetne stanice do N susednih stanica jedne autobuske linije(a[i] je rastojanje izmedju od pocetne stanice do i-te stanice 0<=i<n).Planirana rekonstrukcija autobuske linije tako sto ce ukloniti sve stanice za koje je zbir rastojanja od prethoden do sledece stanice manji od datog broja M.Napisati funkciju kojom se dati niz realnih brojeva A,broj stanica N i realni broj M,vrsi planiranu rekonstrukciju tako da N predstavlja broj stanica posle rekonstrukcije,niz a rastojanje izmedju stanica posle rekonstrukcije.
  6. */
  7.  
  8. int rek(float A[],int N, float M)
  9. {
  10.     int i,*p1,br=-1;
  11.     float rez,temp,temp1;
  12.  
  13.     for(i=0;i<N-1;i++){
  14.         if(i==0){
  15.             temp=A[i];
  16.             temp1=A[i+1]-A[i];
  17.             rez=temp+temp1;
  18.             if(rez>M){
  19.                 br++;
  20.                 A[br]=A[i];
  21.             }
  22.         }
  23.         else{
  24.             temp=A[i]-A[i-1];
  25.             temp1=A[i+1]-A[i];
  26.             rez=temp+temp1;
  27.              if(rez>M){
  28.                 br++;
  29.                 A[br]=A[i];
  30.             }
  31.         }
  32.         if(i==N-2){
  33.             br++;
  34.             A[br]=A[i];
  35.         }
  36.     }
  37.  
  38.  
  39.     return br;
  40. }
  41.  
  42. int main()
  43. {
  44.     int N=9,i;
  45.     float M=4.5,A[100]={1.2,5.5,6,6.85,8,23.5,24.05,27.4},Ap[100]={1.2,5.5,6,6.85,8,23.5,24.05,27.4};
  46.     int frek;
  47.  
  48.     frek=rek(A,N,M);
  49.  
  50.     printf("M = %.1f",M);
  51.     printf("\nN = %d\n",N);
  52.     printf("\nA=(");
  53.  
  54.     for(i=0;i<N-1;i++){
  55.         if(i==N-2){
  56.             printf(" %.1f )",Ap[i]);
  57.         }
  58.         else
  59.         printf(" %.1f,",Ap[i]);
  60.     }
  61.  
  62.  
  63.     printf("\n\n\nN = %d\n",frek+2);
  64.     printf("\nA=(");
  65.  
  66.    for(i=0;i<frek+1;i++){
  67.         if(i==frek){
  68.             printf(" %.1f )",A[i]);
  69.         }
  70.         else
  71.         printf(" %.1f,",A[i]);
  72.  
  73.     }
  74.  
  75.  
  76.     getchar();
  77.     getchar();
  78. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement