Форум программистов, компьютерный форум CyberForum.ru

Натуральное число возрастает справа налево - C++

Восстановить пароль Регистрация
 
Blueeyer
12 / 12 / 1
Регистрация: 09.10.2013
Сообщений: 220
20.11.2013, 04:10     Натуральное число возрастает справа налево #1
Дано следующее:
Дано натуральное число. Верно ли, что его цифры следуют в порядке возрастания справа налево?
- что я написал не так? допустим ввести число 9865363 - пишет True, Хотя должно False
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include<iostream>
using namespace std;
int main() {
    int b,c;
    cout<<"Enter number: ";
    cin>>b;
 
    int d=0;
 
    while (b <= 0){
        c=b%10;
        cout<<c<<endl;
        b=(b-c)/10;
        cout<<b<<endl<<b%10<<endl;
        if(b%10 < c){
            d=d+1;
        cout<<d;}
    }
 
    if(d == 0){
        cout<<"True"<<endl;}
    else{
        cout<<"False"<<endl;}
 
    system("PAUSE");
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.11.2013, 04:10     Натуральное число возрастает справа налево
Посмотрите здесь:

C++ Найти число, полученное при прочтении цифр числа справа налево
Дано натуральное число N. Определить, является ли оно палиндромом. Число-палиндром можно читать справа налево и слева направо одинаково. Например, C++
Найти число, полученное при прочтении цифр числа справа налево C++
C++ Найти число, полученное при прочтении числа N справа налево
C++ Найти число, получаемое при прочтении цифр исходного числа справа налево
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
daslex
1084 / 494 / 101
Регистрация: 02.08.2011
Сообщений: 2,408
20.11.2013, 04:57     Натуральное число возрастает справа налево #2
Цитата Сообщение от Blueeyer Посмотреть сообщение
- что я написал не так?
всё, что написали. Всё не так.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include<iostream>
using namespace std;
int main() {
    int b,c;
    cout<<"Enter number: ";
    cin>>b;
 
    int c_,b_=0;
    int count = 0;
 
   while (b>10)
   {
       b_= b%10;
       c_= b/10%10;
       b = b/10;
       c = b/100;
 
       if (b_>c_)
       {
           count = 1;
           break;
       }
   }
 
 
 
  if (count) cout<<"False";
  else cout<<"True";
 
 
    return 0;
}
IrineK
Заблокирован
20.11.2013, 05:24     Натуральное число возрастает справа налево #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <iostream>
#include <sstream>
#include <clocale>
using namespace std;
 
//преобразуем число в строку
string NumberToString (int N)
{   ostringstream ss;
    ss << N;
    return ss.str();
}
 
//проверяем символы в строке на возрастание справа налево
//то бишь убывание слева направо )
bool IsDescending (string s)
{   int i = s.length()-1;
    while (i>0)
        if (s[i]>s[i-1])
            return false;
        else
            i--;
    return true;
}
 
int main()
{   setlocale(LC_ALL, "");
    int N;
        
    cout << "N = ";
    cin >> N;
    cin.sync();
 
    if (IsDescending (NumberToString (N)))
        cout << "Число возрастает справа налево";
    else
        cout << "Число НЕ возрастает справа налево";
 
    cin.get();
    return 0;
}
versa4e
trainspotting
1082 / 482 / 150
Регистрация: 11.11.2010
Сообщений: 773
20.11.2013, 05:54     Натуральное число возрастает справа налево #4
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
using namespace std;
int main() {
    long x;
    cin >> x;
    while ((x>9) && ((x%10) < (x/10%10)))
        x/=10;
    cout << ((x>9) ? "false" : "true");
    return 0;
}
Blueeyer
12 / 12 / 1
Регистрация: 09.10.2013
Сообщений: 220
20.11.2013, 12:47  [ТС]     Натуральное число возрастает справа налево #5
Я в итоге сделал так, вроде тоже верно всё
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include<iostream>
using namespace std;
int main() {
    int b,c;
    cout<<"Enter number: ";
    cin>>b;
 
    int d=0;
 
    while (b >= 9 && d <= 0){
        c=b%10;
        b=(b-c)/10;
        if(b%10 < c){
            d=d+1;}
    }
    if(d == 0){
        cout<<"True"<<endl;}
    else{
        cout<<"False"<<endl;}
 
 
    system("PAUSE");
    return 0;
}
Yandex
Объявления
20.11.2013, 12:47     Натуральное число возрастает справа налево
Ответ Создать тему
Опции темы

Текущее время: 19:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru