Member 12914219 Ответов: 3

Здравствуйте...я пытался перевернуть число в c++.....


когда я пишу cout< & lt; rev; внутри цикла while, компилятор дает неправильный ответ, но когда я пишу cout< & lt;rev; вне цикла while, программа работает нормально......
но, по-моему, он должен быть написан внутри цикла while ... если он написан снаружи, он должен дать ответ с одним значением..
например, если мы дадим num значение 123
она должна возвращать 1 ответ

Что я уже пробовал:

int main()
{
   int num;
   int rev=0;
   cin>>num;
   while(num>0){
        rev=rev *10;
    rev=rev+num%10;
    num=num/10;
cout<<rev;
   }
   return 0;

3 Ответов

Рейтинг:
1

CPallini

В цикле, который вы объединяете (нет новой строки в cout) последовательные значения rev. С rev строится постепенно, то вы получаете кажущийся неправильным вывод.:

#include <iostream>
using namespace std;
int main()
{
  int num;
  int rev=0;
  cin>>num;
  while(num>0)
  {
    rev=rev *10;
    rev=rev+num%10;
    cout << (num%10);
    num=num/10;
  }
  cout << endl;

  return 0;
}


Member 12914219

#include <iostream>
использование пространства имен std;
тап_п()
{
инт кол-во;
int rev=0;
Кин&ГТ;&ГТ;кол-во;
while (num> 0)
{
cout< & lt;num%10;
num=num/10;
}


возвращает 0;
}...... этот код olso работает...thanxs

Рейтинг:
0

Richard MacCutchan

Ваш код неверен, вам не нужно ничего умножать на 10, вам нужно только захватить значение по модулю num на каждой итерации. Что-то вроде:

while(num>0){
    rev= num%10;
    num=num/10;
    cout<<rev;
 }


Рейтинг:
0

Patrice T

Цитата:
когда я пишу cout< & lt; rev; внутри цикла while, компилятор дает неправильный ответ, но когда я пишу cout< & lt;rev; вне цикла while, программа работает нормально......

Компилятор не дает ответа, хорошего или неправильного.
Ответ приходит из скомпилированной программы.

Используйте отладчик, чтобы увидеть, что делает ваш код. Он позволяет выполнять строки 1 на 1 и проверять переменные по мере их выполнения.

Отладчик-Википедия, свободная энциклопедия[^]
Освоение отладки в Visual Studio 2010 - руководство для начинающих[^]

Отладчик здесь для того, чтобы показать вам, что делает ваш код, и ваша задача-сравнить его с тем, что он должен делать.
В отладчике нет никакой магии, он не находит ошибок, он просто помогает вам. Когда код не делает того, что ожидается, вы близки к ошибке.