Guest User

funkcja usun

a guest
Feb 3rd, 2014
187
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.11 KB | None | 0 0
  1. int usun ( Ttowary *&glowa ){
  2.     Ttowary *pom, *temp, *adres;
  3.     pom = glowa;
  4.     int dlugosc=0;
  5.     double srednia=0, suma=0;
  6.  
  7.     if (glowa == NULL) return -100;
  8.     if (glowa->next == NULL) return -200;
  9.  
  10.     dlugosc = 1;
  11.     suma = pom->cena;
  12.  
  13.     while ( pom->next != NULL ) {
  14.         dlugosc++;
  15.         pom = pom -> next;
  16.  
  17.         suma = suma + pom->cena;
  18.     }
  19.  
  20.     srednia = suma/dlugosc;
  21.  
  22.     cout << endl << "Srednia to " << srednia <<endl;
  23.  
  24.     double najwieksza, roznica;
  25.  
  26.     pom = glowa;
  27.  
  28.     if (pom->cena >= srednia) najwieksza = pom->cena - srednia;
  29.     else najwieksza = 0;
  30.  
  31.     cout << endl << endl << "Towary o cenie wyzszej niz srednia: " << endl;
  32.  
  33.     if ( pom->cena >= srednia ) {
  34.         cout << pom->towar << ": " << pom->cena << endl;
  35.         roznica = pom->cena - srednia;
  36.     }
  37.  
  38.     while ( pom->next != NULL ){
  39.  
  40.             pom = pom -> next;
  41.  
  42.             if ( pom->cena >= srednia ) {
  43.                     cout << pom->towar << ": " << pom->cena << endl;
  44.                     roznica = pom->cena - srednia;
  45.             }
  46.             else {
  47.                     roznica = srednia - pom->cena;
  48.             }
  49.             if (najwieksza < roznica) najwieksza = roznica;
  50.         }
  51.  
  52.     cout << endl << " teraz najwieksza roznica to " << najwieksza << endl << endl;
  53.  
  54.     pom = glowa;
  55.  
  56.     /*if (((glowa->cena - srednia) == najwieksza) || ((srednia - glowa->cena) == najwieksza)) {
  57.         temp = glowa;
  58.         glowa = glowa -> next;
  59.         delete temp;
  60.     }*/
  61.  
  62.     if ( glowa -> cena > srednia ) roznica = glowa -> cena - srednia;
  63.     else roznica = srednia - glowa -> cena;
  64.  
  65.     if (roznica == najwieksza) glowa = glowa -> next;
  66.  
  67.     //szukamy tego o najwiekszej roznicy
  68.     while (glowa -> next != NULL) {
  69.  
  70.         glowa = glowa->next;
  71.  
  72.         cout << endl << "teraz jestem na " << glowa -> cena << endl;
  73.  
  74.         if ( glowa->cena>srednia ) roznica = glowa -> cena - srednia;
  75.         else roznica = srednia - glowa -> cena;
  76.  
  77. //        cout << " roznica to " << roznica << " a najwieksza to " << najwieksza;
  78.  
  79.         if (roznica == najwieksza) {
  80.                 cout << " to usunac " << glowa-> cena << endl;
  81.                 temp = glowa;
  82.                 cout << "temp cena " << temp->cena << endl;
  83.                 cout << "glowa next cena " << glowa->next->cena << endl;
  84.                 cout << "glowa next next cena " << glowa->next->next->cena << endl;
  85.                 glowa = glowa -> next;
  86.                 delete temp;
  87.                 cout << endl << "glowa teraz to " << glowa -> cena << endl;
  88.                 cout << "glowa next cena " << glowa->next->cena << endl;
  89.                 cout << "glowa next next cena " << glowa->next->next->cena << endl;
  90.                 break;
  91.                 /*cout << "1";
  92.                 glowa = glowa -> next;
  93.                 cout << "2";
  94.                 delete temp;
  95.                 cout << "3";*/
  96.         }
  97.         cout << "4";
  98. //        if (((pom->cena - srednia) = najwieksza) || ((srednia - pom->cena) = najwieksza)) cout << " ten jest najwieksza roznica!  " << pom->cena;
  99.  
  100.     }
  101.     glowa = pom;
  102.  
  103.     return 0;
  104. }
Advertisement
Add Comment
Please, Sign In to add comment