Maison >développement back-end >C++ >Pourquoi l'opérateur '^' de mon code C ne calcule-t-il pas correctement les puissances ?
Pourquoi l'opérateur électrique ne fonctionne-t-il pas comme prévu ?
Dans le code C fourni, une tentative est faite pour utiliser le "^" opérateur pour effectuer des opérations électriques. Cependant, la sortie est incorrecte car "^" ne sert pas d'opérateur de puissance dans C/C . Au lieu de cela, il est défini comme l'opérateur XOR au niveau du bit.
Le code vise à calculer la somme des puissances du nombre saisi "a" de 1 à 4. Pour y parvenir correctement, le pow() La fonction doit être utilisée, ce qui nécessite de convertir l'un de ses arguments en double. Le code modifié serait :
#include <stdio.h> void main(void) { int a; double result; int sum = 0; printf("Enter a number: "); scanf("%d", &a); for( int i = 1; i <= 4; i++ ) { result = (int) pow((double) a,i); sum += result; } printf("%d\n", sum); }
De plus, il convient de noter que depuis C99, les fonctions powf() et powl() ont été introduites pour prendre en charge les arguments doubles float et longs, respectivement.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!