Hoch 3 in C proggramieren?
Hallo an Alle,
wie schreibe ich zB. 38³ (hoch 3) in C?
Über eine Antwort würde ich mich sehr freuen.
7 Antworten
![](https://images.gutefrage.net/media/user/EchoTech/1714038134451_nmmslarge__363_89_401_401_1bf424b48c5f6697c3626c1ba809a3dd.png?v=1714038134000)
Hallo
In C gibt es keinen eingebauten Operator für Exponentiation.
Da es sich nur um die dritte Potenz handelt, kannst du einfach die Zahl dreimal mit sich selbst multiplizieren:
int result = 38 * 38 * 38;
Du kannst aber auch pow aus der Mathematik Bibliothek verwenden, pow arbeitet aber mit double-Typen, das kannst du also nicht immer verwenden
#include <stdio.h>
#include <math.h>
int main() {
double result = pow(38, 3);
printf("38 hoch 3 ist %f\n", result);
return 0;
}
![](https://images.gutefrage.net/media/user/JokesOnYou/1510073443758_nmmslarge__170_0_545_545_622aa733460955b17ece56847bd9b323.jpg?v=1510073446000)
Als Methode ohne zusätzliche header:
int PowerOfThree(int value)
{
return value*value*value;
}
Beachte bei der Variablendeklarierung dass du keinen Overflow of int hervorrufst, unsigned long könnte eine besser Option sein wenn du große Zahlen verrechnest.
Mit Header math.h:
int result = pow(value,3);
![](https://images.gutefrage.net/media/user/ohwehohach/1484229011333_nmmslarge__192_3_203_203_916b80d33227bc2c78789585f46b3253.jpg?v=1484229011000)
38 * 38 * 38, wenn es konstant ist.
Mit variablen Basen und Exponenten kannst Du auch die pow(...) Funktion nehmen, oder Du programmierst es als Schleife.
![](https://images.gutefrage.net/media/user/ohwehohach/1484229011333_nmmslarge__192_3_203_203_916b80d33227bc2c78789585f46b3253.jpg?v=1484229011000)
![](https://images.gutefrage.net/media/user/MonkeyKing/1720109156640_nmmslarge__0_0_400_400_a7448469a17c2ce8ed07251058ff274b.jpg?v=1720109157000)
Ja, aber die Funktion musst du selber schreiben oder eine Math Library verwenden
![](https://images.gutefrage.net/media/user/Gehilfling/1444749034_nmmslarge.jpg?v=1444749034000)
int potential(int base, int exp)
{
int counter = 0;
int result = 1;
for(counter; counter < exp; counter++)
{
result = result*base;
}
return result;
}
Wäre mir auf die Schnelle mal eingefallen für eine generische Funktion ganz ohne Library.
![](https://images.gutefrage.net/media/default/user/15_nmmslarge.png?v=1551279448000)
pow(38,3); /* dafür brauchst Du die Math.h" Headerdatei */
oder
38*38*38
Darauf bin ich auch selber gekommen, aber kann man es nicht einfacher und kürzer schreiben mit einer Funktion?