Программа должна инвертировать число, но почему-то этого не происходит
#include <cmath>
using namespace std;
int main()
{
int mass[2];
int result = 0;
int num;
int i = 0;
cin >> num;
while (num > 0)
{
mass[i] = num % 10;
i++;
num = num / 10;
}
int f = 0;
for (int g = sizeof mass - 1; g >= 0; g--)
{
result = (mass[f] * pow(10, g)) + result;
f++;
}
cout << result << endl;
system("pause");
return 0;
}
А почему бы вам не поступить проще?
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int num, res = 0;
cin >> num;
while(num)
{
res = res*10 + num%10;
num /= 10;
}
cout << res << endl;
system("pause");
return 0;
}
Что до вашего кода...
Вы работаете только с двузначными числами? Если нет - у вас будет выход за границу mas
со всеми вытекающими последствиями.
Далее - вставьте вот такой вывод в программу:
cout << sizeof mass << endl;
Судя по всему, результат вас удивит - он будет не 2, как вы, наверное, ожидали, а 2*sizeof(int)
- и вы опять получаете выход за границы массива.
Дальше, собственно, комментировать уже ничего не нужно :(
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Пишу на C++В заголовочном файле делаю объявления (класса), в
Если во входном потоке input_stream встретился символ, не являющийся числом (, или ;), то чтение прекратитсяКак после этого можно продолжить чтение...
Вроде бы как в новых стандартах можно использовать ключевое слово explicit не только к конструкторам, чтобы предотвратить неявное приведение,...
Искал и ничего не нашёл, да и что именно искать не знаю