Что является причиной этого & quot; неверного аргумента типа унарного ‘*’ & quot ;?

Итак, я исследовал столько, сколько может принять мой крошечный мозг. Мне еще предстоит найти ответ, который поможет моей проблеме. Попытка написать калькулятор, который поднимает базу до числа не выше, чем 214783647. И сейчас я просто пытаюсь заставить программу работать без установленных значений. Но вот что говорит отладчик:

main.cpp: In function 'int main()':
main.cpp:25:11: error: invalid type argument of unary '*' (have 'int')
result = *x;

Вот код

#include <iostream>
using namespace std;

int solve(int, int, char);

int main()
{

int x = 0;
int y = 0;
int result = 1;
cout << "Enter your base:";
cin >> x;
cout << "Enter the number to raise base by:";
cin >> y;

for (x = 0; result <= y; result++)
{
result = *x;
}
cout << result;

return 0;

}

Я нахожусь на самых ранних стадиях C ++, но я могу принять любую конструктивную критику.

ФИКСИРОВАННЫЙ!!
Я не уверен, разрешено ли это, но у меня наконец есть программа, полностью работающая благодаря вам!

0

Решение

Проблема здесь в том, что вы пытаетесь разыменовать переменную, которая не является указателем. Просто удалите * от result = *x; назначить значение x в result,

Однако я не верю, что вы получите желаемый эффект. Потому что вы используете x внутри вашего цикла и инициализируя его обратно в 0, вы забиваете любое значение, введенное вашим пользователем.

Я полагаю, что вы пытаетесь сделать следующее

int x = 1;
int y = 1;

std::cout << "Enter your base:";
std::cin >> x;
std::cout << "Enter the number to raise base by:";
std::cin >> y;

int result = x;

for(int i = 1; i < y; i++ ) { //loop y times
result = result * x;        //exponents just times itself y times
}

std::cout << result << endl;

Также стоит отметить, что при использовании чего-либо из стандартной библиотеки std:: Пространство имен — хорошая форма, даже если ваш компилятор этого не требует. А также завершение любого вывода конечной линией endlв противном случае ваша терминальная подсказка начнется сразу после вывода. Надеюсь, это поможет.

2

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector