
Abid Ali
#include <stdio.h>
void main(void)
{
int a;
int result;
int sum = 0;
printf("Enter a number: ");
scanf("%d", &a);
for( int i = 1; i <= 4; i++ )
{
result = a ^ i;
sum += result;
}
printf("%d\n", sum);
}
Warum ist ^
funktioniert nicht als Netzbetreiber?

Sergei Tachenov
Nun, zuerst einmal die ^
Operator in C/C++ ist das bitweise XOR. Mit Befugnissen hat das nichts zu tun.
Nun zu Ihrem Problem mit der Verwendung der pow()
Funktion, etwas googeln zeigt, dass es hilft, eines der Argumente zu verdoppeln:
result = (int) pow((double) a,i);
Beachten Sie, dass ich das Ergebnis auch in umgewandelt habe int
wie alle pow()
Überladungen geben doppelt zurück, nicht int
. Ich habe keinen MS-Compiler zur Verfügung, daher konnte ich den obigen Code nicht überprüfen.
Seit C99, es gibt auch float
und long double
Funktionen aufgerufen powf
und powl
bzwfalls das etwas hilft.

Junge
In C ^
ist das bitweise XOR:
0101 ^ 1100 = 1001 // in binary
Es gibt keinen Operator für die Stromversorgung, den Sie verwenden müssen pow
Funktion aus math.h (oder einer anderen ähnlichen Funktion):
result = pow( a, i );
pow() funktioniert nicht mit int
daher der Fehler “error C2668:’pow’: mehrdeutiger Aufruf einer überladenen Funktion”
http://www.cplusplus.com/reference/clibrary/cmath/pow/
Schreiben Sie Ihre eigene Potenzfunktion für int
S:
int power(int base, int exp)
{
int result = 1;
while(exp) { result *= base; exp--; }
return result;
}

Pankaj Prakash
Als allererstes ^
ist ein Bitweiser XOR-Operator nicht Netzbetreiber.
Sie können andere Dinge verwenden, um die Macht einer beliebigen Zahl zu finden. Sie können verwenden for-Schleife, um die Potenz einer beliebigen Zahl zu finden
Hier ist ein Programm, um x^y dh x zu findenj
double i, x, y, pow;
x = 2;
y = 5;
pow = 1;
for(i=1; i<=y; i++)
{
pow = pow * x;
}
printf("2^5 = %lf", pow);
Sie können auch einfach verwenden pow() Funktion, um die Potenz einer beliebigen Zahl zu finden
double power, x, y;
x = 2;
y = 5;
power = pow(x, y); /* include math.h header file */
printf("2^5 = %lf", power);
Es funktioniert nicht, weil sowohl c als auch c++ keine Operatoren haben, um Power-Operationen durchzuführen.
Was Sie tun können, ist, Sie können die Bibliothek math.h und die Funktion pow verwenden.
` #include<stdio.h>
#include<math.h>
int main(){
int base = 3;
int power = 5;
pow(double(base), double(power));
return 0;
}`

Nick Anderegg
Sie müssen tatsächlich pow(number, power); verwenden. Leider funktionieren Karat nicht als Machtzeichen in C. Wenn Sie feststellen, dass Sie etwas in einer anderen Sprache nicht tun können, liegt das oft daran, dass es eine andere Funktion gibt, die dies für Sie erledigt.

anup
math.h einbinden und mit gcc test.c -lm kompilieren
9972100cookie-checkWarum funktioniert mein Power-Operator (^) nicht?yes
Funktioniert gut für mich, nachdem ich den Rückgabewert von main() durch “int” ersetzt habe. Ich hatte aber nicht erwartet, dass es funktioniert, da
<stdio.h>
und<math.h>
werden normalerweise anstelle von verwendet"stdio.h"
und"math.h"
. Aber es sieht so aus, als ob GCC sich nicht wirklich darum kümmert.– Sergei Tachenov
30. Januar 2011 um 14:18 Uhr
@Abid Es ist oft gut, Fragen zu bearbeiten, aber in diesem Fall haben die Bearbeitungen die Frage bedeutungslos gemacht (Sie haben das Problem durch die Lösung ersetzt). Es ist besser, die ursprünglichen Fragen zu belassen, damit andere lernen können – aber es ist jetzt nur noch verwirrend (Es gibt kein “^” in der Frage). Schlagen Sie vor, dass Sie zur letzten Änderung zurückkehren, die als Frage sinnvoll ist
– peter.murray.rust
30. Januar 2011 um 14:25 Uhr
Zurück zu verwenden geändert
^
da die Frage (und die Antworten) sonst wenig Sinn machen. Da peoro Ihre Frage richtig beantwortet hat, sollten Sie sie akzeptieren und fortfahren. Wenn Sie haben Ein weiterer Frage, dann stellen Sie bitte eine andere Frage. Bearbeiten Sie dieses nicht, um die ganze Arbeit bedeutungslos zu machen.– paxdiablo
30. Januar 2011 um 14:30 Uhr
@Sergey Tachenov: Oh, ich sehe jetzt, dass Sie pow() verwendet haben? Ich dachte, Sie hätten den Originalcode des OP (mit ^ für pow) zum Laufen gebracht.
– Oystein
30. Januar 2011 um 15:04 Uhr
void main
??? Äh…– PaulR
30. Januar 2011 um 16:00 Uhr