Problem z funkcjami

0
 #include <iostream>
#include <stdio.h>
#include<stdlib.h>
#include <conio.h>
using namespace std;
struct element
    {
            char cyfra;
            struct element *next;
    };
struct element *nowy_element(char d)
    {
            struct element *wsk; //wskaznik pomocniczy
            wsk=new element;
            wsk->cyfra=d;
            wsk->next=NULL;
            return wsk;
    }
struct element *add_element(struct element *poczatek, struct element *nowy)
    {
            nowy->next=poczatek;
            return nowy;
    }
struct element pierwsza()
{
    struct element *poczatek1;
    poczatek1 = NULL; 
element *temp1=poczatek1;
    char d;
    cout<<" WPISZ liczbe pierwsza ";
    do
    {
            d=getchar();
            poczatek1=add_element(poczatek1, nowy_element(d));
   
    }
    while(d!='\n');
	return *temp1;
}
struct element druga()
{
	char d;
	struct element *poczatek2;
	poczatek2 = NULL;
	element *temp2=poczatek2;
    cout<<" WPISZ liczbe druga ";
    do
    {
        d=getchar();
        poczatek2=add_element(poczatek2,nowy_element(d));
    }
    while(d!='\n');
	
    return *temp2;
}

void wyswietlanie(element *temp)
{	
	struct element *poczatek=NULL;
	element *temp=poczatek; ///poczatek wypisywania elementow
	cout<<"TWOJA LICZBA TO= "<<endl;
	while(temp!=NULL)
	{
		cout<<temp->cyfra<<" ";
		temp=temp->next;
	}
}
int main()
{
wyswietlanie(pierwsza());
    system("pause");
    return 0;
}

Witam. to mój pierwszy program z listami i nie za bardzo wiem jak to ogarnąć..
Mam do wyświetlenia 2 listy...jednak w innych funkcjach.
jak i jakie mam przesłać parametry do funkcji wyświetlanie by wyświetlało mi całą liste?
gdzie jest błąd/

0

popatrz co zrobiłeś! Nadajesz wartość NULL dla poczatek, a potem ta samą wartość próbujesz ustawiasz dla argumentu funkcji, czyli tracisz kontakt z listą, którą masz wyświetlić! Próbujesz, bo tak naprawdę redefiniujesz ten symbol!

0

Ok, poprawione.
ALe jak chcę wywołać funkcje wyświetlanie(pierwsza()); to nie daje rady..bo 'wyswietlanie' : cannot convert parameter 1 from 'element' to 'element *' o co chodzi?

0
poczatkujący4444 napisał(a)

Ok, poprawione.
ALe jak chcę wywołać funkcje wyświetlanie(pierwsza()); to nie daje rady..bo 'wyswietlanie' : cannot convert parameter 1 from 'element' to 'element *' o co chodzi?

bo pierwsza zwraca wartosc typu element a argument ktory przyjmuje funkcja wyswietlanie to wskaznik do element ( element* )

struct element jakistam = pierwsza();
wyswietlanie( &jakistam );

albo po prostu zmien funkcje

nie jestem pewien bo nie pisze w C, ale chyba nie mozna inicjowac zmiennej za pomoca funkcji
wiec rozbij to na dwie linijki

struct element jakistam;
jakistam = pierwsza();

1 użytkowników online, w tym zalogowanych: 0, gości: 1