Neprovedou se funkce – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Neprovedou se funkce – C / C++ – Fórum – Programujte.comNeprovedou se funkce – C / C++ – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
jadus
~ Anonymní uživatel
36 příspěvků
8. 11. 2012   #1
-
0
-

Zdravim, mohl by mi někdo osvětlit proč mi funkce nevrací žádný výsledek? Vím že ty voidky nic vracet nebudou, ale ona nevrací nic ani funkce mocnina();. Překládal jsem přec gcc;

#include <iostream>
#include <cstdlib>
using namespace std;

double mocnina(double x, double n);
double draha(double a, double t, double v);
double draha(double v, double t);
void nacteni(int *pole[]);
void vypis(int *pole[]);
void setrideni(int *pole[]);


double mocnina(double x,double n)
{
	if(n>0)
		return x*mocnina(x,n);
	return 1;
}

double draha(double a, double t, double v)
{
	return v*t+0.5*a*mocnina(t,2);
}

double draha(double v,double t)
{
	return v*t;
}

void nacteni(int *pole[])
{

  for(int i=0;i<5;i++)
    {

      *pole[i] = rand() %100;
      cout << *pole[i];
    }
}

void vypis(int *pole[])
{
  for(int i=0;i<5;i++)
    {
      cout << pole[i] << endl;
    }
}

void setrideni(int *pole[])
{
  for(int i=0;i<5;i++)
          for(int j=0;j<4;i++)
            if(*pole[j] > *pole[j+1])
            {
              int temp = *pole[j];
              *pole[j] = *pole[j+1];
              *pole[j+1] = temp;
            }


}

int lol()
{
	return 1;
}


int main()
{
  int x=0, y=0, z=0;
  int volba = 0;
  cout<< "Yeay: 1. mocnina \n 2. draha (rychlost a cas) \n 3. draha (cas, rychlost a zrychleni) \n 4. naplneni pole, vypis pole a setrideni pole" << endl;
  cin >> volba;
  switch(volba)
    {
      case(1):
            cin >> x;
            cin >> y;

            cout << "Hejj: " <<mocnina(x,y) << endl;
            break;

        case(2):
            cin >> x;
            cin >> y;
            cout << draha(x,y);
            break;

        case(3):
            cin >> x;
            cin >> y;
            cin >> y;
            cout << draha(x,y,z) << endl;
        break;


        case(4):
          int *pole = new int[5];
          nacteni(&pole);
          vypis(&pole);
          cout << "__________" << endl;
          setrideni(&pole);
          vypis(&pole);
          break;

    }

  cout << "___________________________" << endl;
      return 0;

}
Nahlásit jako SPAM
IP: 90.181.100.–
Reklama
Reklama
Pesoxx0
Duch
8. 11. 2012   #2
-
0
-

Hned ve funkci mocnina jsi použil (asi nevědomě) tzv. rekurzi. To znamená, že funkce volá sama sebe. Problém je že ta  funkce volá další  a to se nikdy nezastaví, překladač si pak postěžuje na něco jako stack overflow(ty funkce se nemohou volat do nekonečna).

Snad ti to pomůže.

Nahlásit jako SPAM
IP: 31.134.216.–
jadus
~ Anonymní uživatel
36 příspěvků
8. 11. 2012   #3
-
0
-

ta rekurze je tam vědomě... musí tam být... a já už to vidim...

1. ve forcyklu mam ve vnořenym forcyklu i++ misto j++

2. :D v tý rekurzi neodečítám od nka jedničku

Nahlásit jako SPAM
IP: 90.181.100.–
Pesoxx0
Duch
8. 11. 2012   #4
-
0
-

problém vyřešen  

Nahlásit jako SPAM
IP: 31.134.216.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 145 hostů

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý