Я запускал ваш код несколько раз с msvs c 19 и g ++ как с x86, так и с x64, он работал как исключено и напечатал 1, введенный в оператор if, когда p
добрался до 81, а counter2 добавлено 1 вот код Я пробовал
#include <iostream>
#include <cmath>
int main() {
int n, p, saveP = 0, resetP;
float contor = 0;
float contor2 = 0;
n = 3;
p = 100;
resetP = p;
while (p > 1) {
contor++;
p = p / n;
}
p = resetP;
while (p > 1) {
p--;
if (pow(n, contor) == p)
contor2++;
}
std::cout << contor2;
}
проверить настройки компилятора (возможно, вы не компилируете файл cpp, который редактируете), а также проверьте синтаксические ошибки (например, области действия в операторе if)
i не знаю, что такое весь ваш код, но здесь лучше объявить counter
и counter2
как int, а p
как float