» »

Deljenje v C-ju z rekurzijo

Deljenje v C-ju z rekurzijo

sebi7 ::

Pozdravljeni.Nalogo imam narediti tole:

napišite funkcijo za izračun ostanka pri deljenju celoštevilčnega števila, brez uporabe operacij deljenja,ostanka pri deljenju in množenja. V glavne programu demonstrirajte delovanje funkcije tako, da program kot parameter ukazne vrstice prejme dva parametra deljenca in delitelja (za pretvorbo niza v število uporabite funkcijo atoi) in izpiše ostanek pri deljenju deljenca z deliteljem.

tole sem uspel dobit:





int OstanekPriDeljenju(int deljenec, int delitelj)
{
int deljenecNEG = 0;
int deliteljNEG = 0;
int ostanekStevil = 0;

if(deljenec < 0)
{
deljenec = -(deljenec);
deljenecNEG = 1;
}
if(delitelj < 0)
{
delitelj = -(delitelj);
deliteljNEG = 1;
}

deljenec = deljenec - delitelj;

if(deljenec > 0)
{
if(deljenecNEG == 1)
{
deljenec = -(deljenec);
}
if(deliteljNEG == 1)
{
delitelj = -(delitelj);
}
return OstanekPriDeljenju(deljenec, delitelj);
}
else
{
if(deljenec == 0)
{
ostanekStevil = 0;
}
else
{
ostanekStevil = deljenec + delitelj;
if(deljenecNEG == 1 && deliteljNEG == 0)
{
ostanekStevil = -(ostanekStevil);
}
if(deljenecNEG == 1 && deliteljNEG == 1)
{
ostanekStevil = -(ostanekStevil);
}
}
return ostanekStevil;
}

}


int main(int argc, char* argv[])
{
int deljenec = 0;
int delitelj = 0;
int ostanekStevil = 0;

if(argc == 3)
{
deljenec = atoi(argv[1]);
delitelj = atoi(argv[2]);

ostanekStevil = OstanekPriDeljenju(deljenec, delitelj);
if (delitelj == 0)
return 0;

printf("%d", ostanekStevil);
}
return 0;
}
[ /st.koda c]

sebi7 ::

Deluje dobro le ko delimo z nič takrat je to večna zanka.Na koncu v mainu rabim nekako vstavit pogoj da če je delitelj 0 pol naj za ostanek vzeme nič, in to ne vem kako ker tole definitivno ni pravilno

int main(int argc, char* argv[])
{
int deljenec = 0;
int delitelj = 0;
int ostanekStevil = 0;

if(argc == 3)
{
deljenec = atoi(argv[1]);
delitelj = atoi(argv[2]);

ostanekStevil = OstanekPriDeljenju(deljenec, delitelj);
if (delitelj == 0) ----------->tole ni dobro vstavljeno
return 0;

printf("%d", ostanekStevil);
}
return 0;
}


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Deljenje z 0

Oddelek: Šola
318209 (4856) JanBrezov
»

NUJNO!Algoritmi C++

Oddelek: Pomoč in nasveti
211869 (1131) DOOM_er
»

Diagram poteka - pomoč

Oddelek: Programiranje
51422 (1377) Ciklamen
»

[java] problem z decimalkami

Oddelek: Programiranje
91502 (1176) NeOman
»

Programiranje- diagram

Oddelek: Programiranje
51490 (1437) Cyrus008

Več podobnih tem