• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

zamiana miejscami lista

0 głosów
1,943 wizyt
pytanie zadane 30 stycznia 2018 w C i C++ przez Krystek102 Bywalec (2,440 p.)
napisz funkcję która w liscie jednokierunkowej znajdzie element najmniejszy i największy.Jeżeli element najmniejszy lezy dalej niż najwiekszy funkcja powinna zamienić je miejscami.Wszystkie elementy w liście są różne i lista ma minimum dwa elementy
oto mój kod

#include <stdio.h>
#include <stdlib.h>

struct element
{
    double x;
    struct element *nast;
};
typedef struct element ELEMENT;
typedef ELEMENT *ADRES;
    void wypisz(ADRES pierwszy)
    {int ile=0;
    int ile1=0;
        ADRES pom=pierwszy;
        double maks=pom->x;
        double mins=pom->x;
        while(pom!=NULL)
        {
            if(mins>pom->x)
            {
                ile++;
                mins=pom->x;
            }
                
            if(maks<pom->x)
            {
                ile1++;
                  maks=pom->x;
            }
              
            pom=pom->nast;

        }
        if(ile>ile1)
        {
            //tu powinna dokonywac sie zamiana 
        }
    }
int main()
{



    return 0;
}

mam problem z zamianą ,nwm jak to zrobić w liście,ma ktoś pomysł? 

1 odpowiedź

+1 głos
odpowiedź 30 stycznia 2018 przez j23 Mędrzec (195,220 p.)
	ADRES pom = pierwszy;
	ADRES max = pom;
	ADRES min = pom;
	size_t pos = 0, min_p = 0, max_p = 0;

	pom = pom->nast;

	while(pom != NULL)
	{
		if(min->x > pom->x) { min = pom; min_p = pos; }
		else if(max->x < pom->x) { max = pom; max_p = pos; }
		pom = pom->nast;
		++pos;
	}

	if(min_p > max_p)
	{
		int x = max->x;
		max->x = min->x
		min->x = x;
	}

 

komentarz 30 stycznia 2018 przez Krystek102 Bywalec (2,440 p.)
dzięki,wszystko już jasne :)

Podobne pytania

0 głosów
1 odpowiedź 295 wizyt
pytanie zadane 9 stycznia 2018 w C i C++ przez mn130496 Gaduła (3,640 p.)
0 głosów
1 odpowiedź 2,841 wizyt
pytanie zadane 20 października 2019 w C i C++ przez kalczur Gaduła (4,320 p.)
0 głosów
1 odpowiedź 748 wizyt
pytanie zadane 4 maja 2016 w C i C++ przez KlejnotNilu Użytkownik (750 p.)

93,741 zapytań

142,676 odpowiedzi

323,294 komentarzy

63,323 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...