62 Stimmen

Warum funktioniert mein Netzbetreiber (^) nicht?

#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 ^ nicht als Stromversorger arbeiten?

2voto

Brijal Kansara Punkte 78

Es funktioniert nicht, weil sowohl c als auch c++ keine Operatoren zur Durchführung von Leistungsoperationen haben.

Was Sie tun können, ist, Sie können math.h-Bibliothek und verwenden Sie pow-Funktion. Es gibt eine Funktion für diese anstelle des Operators.

`   #include<stdio.h>
    #include<math.h>
    int main(){
        int base = 3;
        int power = 5;
        pow(double(base), double(power));
        return 0;
     }`

1voto

Nick Anderegg Punkte 966

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

1voto

Es gibt keine Möglichkeit, die ^ (Bitwise XOR)-Operator, um die Potenz einer Zahl zu berechnen. Um die Potenz einer Zahl zu berechnen, haben wir also zwei Möglichkeiten, entweder wir verwenden eine while-Schleife oder die pow()-Funktion .

1. Verwendung einer while-Schleife.

#include <stdio.h>

int main() {

    int base, expo;
    long long result = 1;

    printf("Enter a base no.: ");
    scanf("%d", &base);

    printf("Enter an exponent: ");
    scanf("%d", &expo);

    while (expo != 0) {
        result *= base;
        --expo;
    }

    printf("Answer = %lld", result);
    return 0;
}    

2. Die Verwendung des pow() Funktion

#include <math.h>
#include <stdio.h>

int main() {

    double base, exp, result;

    printf("Enter a base number: ");
    scanf("%lf", &base);

    printf("Enter an exponent: ");
    scanf("%lf", &exp);

    // calculate the power of our input numbers
    result = pow(base, exp);

    printf("%.1lf^%.1lf = %.2lf", base, exp, result);

    return 0;
}

1voto

Nasik Shafeek Punkte 941

Wenn Sie versuchen, die Potenz zur Basis 2 zu berechnen, können Sie den bitweisen Verschiebeoperator zur Berechnung der Potenz verwenden. Angenommen, Sie möchten die Potenz von 2 mit 8 berechnen.

2 << 7

0voto

mwck46 Punkte 126

Für ganzzahlige Exponenten können Sie einfach Ihre Implementierung von pow() schreiben

int myPow(int x, int n)
{
  if (n == 0) return 1;
  return x * myPow(x, n - 1);
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X