Warum kostenlos registrieren?

Nur als registriertes Mitglied hast Du vollen Zugriff auf alle Funktionen unserer Website. So kannst Du eigene Fragen stellen und hast die volle Übersicht über neue interessante Themen im Forum.
Jetzt kostenlos registrieren.

Login


c++ x hoch y

Programmier-Tipps und -Tricks. Artikel zum Thema Java, PHP, C++, Delphi, VB, etc.

c++ x hoch y

Beitragvon Kirro am 04.02.2006, 17:40

Hallo ich habe folgendes problem und zwar will x hoch y rechnen, da es kein hich befehl bei c++ gibt muss man es ja "umschreiben" bzw. selbst programmieren!

Code: Alles auswählen
#include <iostream>

using namespace std;

int main()
{
   int zahl;
                int hochzahl;


   cout <<"Geben sie eine zahl ein: ";
   cin >>zahl;
   cout <<"\nWie viel Mal soll diese hoch genommen            werden? ";
   cin >>hochzahl;
      
   int zahl2= zahl*zahl;

                int i = 0;
   do
   {
      i++;
      zahl2 *=zahl;
   }while (i==hochzahl);



   cout <<"Ergebnis : "<< zahl2;
   cout <<"\n";
   
   return 0;
}



das funktioniert leider nicht! Er ignoriert anscheined die while- bedingung! da er immer hoch 3 rechnet. (später soll noch ne if bedingung für hoch 2 kommen aber erst mal dieses problem)

auch wenn man für die hochzahl 4 oder 5 einsetzt macht er hoch 3 ? kann mir vllt jemand ein tipp geben?

danke im voraus

PS: benutze visual c++ 6.0 von microsoft
Kirro
 
Beiträge: 526
Registriert: 26.04.2004, 15:41
Wohnort: Oldenburg


Beitragvon Gayson am 04.02.2006, 19:18

Warum nicht einfach mit ner for-Schleife:
Code: Alles auswählen
int zahl2=1;
for (int i=0; i<hochzahl;i++){
zahl2*=zahl;
}


Ansonsten müsste meiner Meingung deine Schleife so lauten:
Code: Alles auswählen
do{
i++;
zahl2*=zahl;
}while (i<hochzahl);


Schöner ist es jedoch, die Methode Potenz in einer weiteren Methoden zu definieren, damit sie universal einsetzbar ist. Da gibt es zwei Varianten (iterativ und rekursiv, falls es dir was sagt).
Code: Alles auswählen
int potenz(int x, int n){
if (n>0)
return (x*potenz(x,--n)); /* rekursiver Aufruf */
else
return (1);
}

Code: Alles auswählen
int potenz(int x, int n){
int zahl2 = 1;
for(int i=0;i<n;i++){
zahl2*=x;
}
return result;
}


!!! Habs noch nicht ausprobiert, nur mal schnell hingeschrieben !!!
Gayson
 
Beiträge: 1615
Registriert: 22.05.2004, 07:54
Wohnort: Berlin

Beitragvon Kirro am 04.02.2006, 19:27

Danke schön habe die for schleife genommen, und es klappt

aber als ich sie genommen habe funktionierte die nicht, da ich nicht zahl2 als 1 definiert habe.
was jedoch klar ist

danke schön
Kirro
 
Beiträge: 526
Registriert: 26.04.2004, 15:41
Wohnort: Oldenburg



Ähnliche Themen


Zurück zu Artikel Softwareprogrammierung

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste