#include <iostream>
#include <stdio.h>
#include<stdlib.h>
#include <conio.h>
#include <list>
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; //wskaźnik wskazuje na null, czyli tam gdzie nic nie ma
return wsk;
}
struct element *add_element(struct element *poczatek, struct element *nowy)
{
nowy->next=poczatek;
return nowy;
}
struct element pierwsza()
{
struct element *poczatek1;//dwie listy, więc dwa oddzielne początki
poczatek1 = NULL; //zerujemy początki, staną się one końcami swoich list
element *temp1=poczatek1;
char d;
cout<<" WPISZ liczbe pierwsza ";
do
{
d=getchar();
poczatek1=add_element(poczatek1, nowy_element(d));
}
while(d!='\n');
return *poczatek1;
}
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 *poczatek2;
}
void wyswietlanie(element *temp)
{
struct element *poczatek=NULL;
cout<<"TWOJA LICZBA TO= "<<endl;
while(temp!=NULL)
{
cout<<temp->cyfra<<" ";
temp=temp->next;
}
}
struct element dodawanie(element *poczatek1,element *poczatek2)
{
struct element *poczatek3;
poczatek1=poczatek2=poczatek3=NULL;
element *temp1=poczatek1;
element *temp2=poczatek2;
element *temp3=poczatek3;
//funkcja dodawania:
while((poczatek1&&poczatek2)!=NULL)
{
if((temp1->cyfra)+(temp2->cyfra)>=10)
{
temp3->cyfra=(temp1->cyfra)+(temp2->cyfra);
(temp3->cyfra)%10;
poczatek3=add_element(poczatek3, nowy_element(temp3->cyfra));
temp1=temp1->next;
temp1->cyfra++;
temp2=temp2->next;
temp3=temp3->next;
}
if((temp1->cyfra)+(temp2->cyfra)<10)
{
poczatek3=add_element(poczatek3, nowy_element(temp3->cyfra));
temp1=temp1->next;
temp2=temp2->next;
temp3=temp3->next;
}
if((temp1->cyfra)==NULL && (temp2->cyfra)!=NULL)
{
temp3=temp2->next;
}
if ((temp1->cyfra)!=NULL && (temp2->cyfra)==NULL)
{
temp3=temp1->next;
}
}
cout<<"TWOJA LICZBA TO= "<<endl;
while(temp3!=NULL)
{
cout<<temp3->cyfra<<" ";
temp3=temp3->next;
}
return *poczatek3;
}
int main()
{
struct element jakistam1, jakistam2, dodaj;
jakistam1=pierwsza();
//wyswietlanie(&jakistam1);
jakistam2=druga();
//wyswietlanie(&jakistam2);
dodaj=dodawanie(&jakistam1,&jakistam2);
//wyswietlanie(&dodaj);
system("pause");
return 0;
}
wygląda to tak, tylko przy returnie z dodawania wywala mi się cały program z tym, że nie zna wartości *początek3...
co jest źle? czy coś przeoczyłam??