Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 11.11.2021
Сообщений: 75
1

Убрать из целого десятичного числа старшие 4 цифры

20.04.2022, 14:57. Показов 596. Ответов 14
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
т.е., если число =12045018 ,должно получиться 5018
почему то код работает не со всеми числами


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
#include <iostream>
using namespace std;
 
int main()
{
    int x;
    int x2;
    int counter = 0;
    cout << "Enter x: ";
    cin >> x;
    x2 = x;
    while (x % 10)
    {
        x /= 10;
        counter++;
    }
    x = 1;
    for (int i = 0; i < counter - 4; i++)
    {
        x *= 10;
    }
    x *= x2 / x;
 
    x2 -= x;
    cout << x2 << endl;
 
    return 0;
 
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.04.2022, 14:57
Ответы с готовыми решениями:

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

Убрать из десятичного числа четные цифры
программа на С++ убрать из чесла четные оставив нечетные ( сохранив порядок ) легая прога , но...

Проверить, равны ли две старшие цифры числа?
Равны ли две старшие цифры числа?

выделение целого числа из десятичного
В базе координаты лежат в десятичной системе (например 48,7786583333333) нужно перевести в градусы...

14
687 / 444 / 209
Регистрация: 18.10.2020
Сообщений: 1,606
20.04.2022, 15:04 2
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
#include <iostream>
using namespace std;
 
int main()
{
    long long int x;
    long long int x2;
    int counter = 0;
    cout << "Enter x: ";
    cin >> x;cin.get();
    x2 = x;
    while (x % 10)
    {
        x /= 10;
        counter++;
    }
    long long int res = 0;
    int c =1;
    for(int i = 0;i<counter-4;i++)
    {
        res+=x2%10*c;
        c*=10;
        x2/=10;
        
    }
 
    cout << res << endl;
 cin.get();
    return 0;
 
}
1
731 / 432 / 207
Регистрация: 19.12.2016
Сообщений: 1,700
20.04.2022, 15:16 3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
using namespace std;
 
int main()
{
    int x, x2 = 0, i = 1;
    int counter = 0;
    cout << "Enter x: ";
    cin >> x;
    while (x / 10000)
    {
        x2 += x % 10 * i;
        i *= 10;
        x /= 10;
    }
    std::cout << x2  << "\n";
    return 0;
}
1
13 / 8 / 5
Регистрация: 14.04.2022
Сообщений: 63
20.04.2022, 15:20 4
Это
Цитата Сообщение от liamia Посмотреть сообщение
while (x % 10)
равносильно этому
C++
1
while (x % 10 != 0)
подумай на что исправить
1
823 / 626 / 321
Регистрация: 24.02.2017
Сообщений: 2,209
20.04.2022, 15:33 5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <cmath>
using namespace std;
 
int main () {
      long long int x,d=0,p=1;
      int n;
 
      cin>>x;
      n=log10(x*1.)-3;
      if(n>0)
         while(n--)
            d+=x%10*p, p*=10, x/=10;
      cout<<d;
      return 0;
}
0
Модератор
Эксперт С++
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,712
20.04.2022, 15:45 6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <string>
using namespace std;
 
int main()
{
    string x;
    cout << "Enter x: ";
    cin >> x;
    cin.get();
    x.erase(x.begin(),x.begin()+4);
    cout << x << endl;
    cin.get();
    return 0;
 
}
0
13 / 8 / 5
Регистрация: 14.04.2022
Сообщений: 63
20.04.2022, 15:50 7
zss, а если введут "qwerty" ? По ТЗ целое число
0
687 / 444 / 209
Регистрация: 18.10.2020
Сообщений: 1,606
20.04.2022, 15:51 8
Dmitriy-T, так если введу qwerty в инт, там тоже мало приятного будет
0
Модератор
Эксперт С++
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,712
20.04.2022, 15:57 9
Цитата Сообщение от Dmitriy-T Посмотреть сообщение
если введут "qwerty" ?
Так со строкой даже лучше, не надо отслеживать ошибки ввода,
можно просто все лишнее убрать:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <string>
using namespace std;
 
int main()
{
    string x,xres;
    cout << "Enter x: ";
    cin >> x;
    cin.get();
    int j=0;
    for(size_t i=0;i<x.size();++i)
        if(isdigit(x[i]))
        {
            if(j>=4)
                xres+=x[i];
            j++;
        }
    cout << xres << endl;
    cin.get();
    return 0;
 
};
0
13 / 8 / 5
Регистрация: 14.04.2022
Сообщений: 63
20.04.2022, 15:59 10
Цитата Сообщение от programmer_08 Посмотреть сообщение
Dmitriy-T, так если введу qwerty в инт, там тоже мало приятного будет
Хорошо, вводим "012345"
0
Модератор
Эксперт С++
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,712
20.04.2022, 17:56 11
Dmitriy-T, проблема не в этом, а в том, что задача делается не для того, чтобы ее решить,
а для того, чтобы сдать.
Соответственно, предложенный мною вариант не прокатит.
Я такое решение привел просто для того, чтобы показать альтернативный подход.
0
Модератор
Эксперт CЭксперт С++
5174 / 2896 / 1501
Регистрация: 14.12.2018
Сообщений: 5,233
Записей в блоге: 1
20.04.2022, 18:07 12
liamia,
C++
1
2
3
4
5
6
7
8
9
#include <iostream>
int main()
{
    long long x;
    std::cout << "x = "; std::cin >> x;
    long long x2 = x % 10000;
    std::cout << x2;
    return 0;
}
0
Модератор
Эксперт С++
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,712
20.04.2022, 18:36 13
Volga_, не факт, что число будет 8 разрядное, поэтому x % 10000 не подойдет.
1
823 / 626 / 321
Регистрация: 24.02.2017
Сообщений: 2,209
20.04.2022, 20:33 14
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
#include <cmath>
using namespace std;
 
int main() {
    long long int x;
 
    cin >> x;
    cout << x%(int)pow(10,(int)(log10(x*1.) - 3));
    return 0;
}
1
13 / 8 / 5
Регистрация: 14.04.2022
Сообщений: 63
20.04.2022, 20:39 15
Цитата Сообщение от zss Посмотреть сообщение
Dmitriy-T, проблема не в этом, а в том, что задача делается не для того, чтобы ее решить,
а для того, чтобы сдать.
Соответственно, предложенный мною вариант не прокатит.
Я такое решение привел просто для того, чтобы показать альтернативный подход.
Оно почти решено, иногда работает, человек в одной строке ошибся, я указал где ошибка, а вы тут флуд устроили.
0
20.04.2022, 20:39
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.04.2022, 20:39
Помогаю со студенческими работами здесь

Переставьте местами цифры десятичного числа так, чтобы сначала оказались цифры, меньшие пяти
Решить не используя массив! Дано четырехзначное число. Переставьте местами цифры так, чтобы...

перевод целого десятичного числа в двоичное
Написать програму перевода любого целого десятичного числа в двоичное зарание спасиба

Перевод десятичного целого числа в K-ичное
Разработать процедуру перевода десятичного целого числа в K-ичное, используя ее напечатать таблицы...

Перевод целого десятичного числа p-ичную сс (p<10)
Помогите пожалуйста написать перевод целого десятичного числа в р-ичную систему счисления (р&lt;10) с...

Перевод отрицательного целого десятичного числа в двоичное
Перевод отрицательного целого десятичного числа в двоичное

Подсчитать количество цифр целого десятичного числа
Подсчитать количество цифр целого десятичного числа. Результат сохранить в файл «1.txt». Найти все...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru