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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.90
KennyLM
0 / 0 / 0
Регистрация: 17.07.2011
Сообщений: 4
#1

От числа отделить попарно цифры - C++

15.08.2011, 23:55. Просмотров 1240. Ответов 13
Метки нет (Все метки)

Вводим любое рендомное целое число. К примеру 123456 на екране должно появится - 16 25 34, если к примеру 12345 то - 15 24 3 . Желательно сделать код через while.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.08.2011, 23:55
Здравствуйте! Я подобрал для вас темы с ответами на вопрос От числа отделить попарно цифры (C++):

Программирование рекурсий: отделить цифры данного числа и сложить межу собой - C++
Дано целое неотрицательное число n. Отделить цифры данного числа и сложить межу собой.

Отделить один знак из 5-значного числа - C++
Допустим, есть число 23456. #include <iostream> using namespace std; #include <iomanip> using std::setw; int main() { ...

Замена последней цифры на значение наименьшей цифры в записи числа N - C++
Ошибка в задании Условие:Дано натуральное число N. Получить новое число М, которое образуется из числа N путем замены последней цифры на...

Сложить цифры числа (до тех пор, пока не получится сумма из одной цифры) - C++
Всем Доброго времени суток. Первая программа заключается в том что с клавиатуры вводится число например 45644, нужно занести его или в...

Циклы: найти произведение последней цифры и минимальной цифры числа с произведением всех остальных - C++
Помогите, я даже не знаю о чем речь(((( Дано натуральное число n. Найти произведение последней цифры и минимальной цифры этого числа...

Получить число М, которое образуется из числа N путем замены последней цифры на значение наибольшей цифры - C++
Помогите составить программу, пожалуйста! Вот условие: Дано натуральное число N. Получить новое число М, которое образуется из числа...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Paporotnik
383 / 227 / 7
Регистрация: 06.07.2011
Сообщений: 512
15.08.2011, 23:58 #2
и? ждешь пока тебе напишут ответ? а сам ничего не придумал?
0
Ree.exe
56 / 56 / 4
Регистрация: 01.08.2011
Сообщений: 141
16.08.2011, 00:00 #3
Число вводится с клавиантуры или функцией rand() генерируется?
0
KennyLM
0 / 0 / 0
Регистрация: 17.07.2011
Сообщений: 4
16.08.2011, 00:01  [ТС] #4
Цитата Сообщение от Ree.exe Посмотреть сообщение
Число вводится с клавиантуры или функцией rand() генерируется?
с клавиатуры через cin
0
Ree.exe
56 / 56 / 4
Регистрация: 01.08.2011
Сообщений: 141
16.08.2011, 00:03 #5
Ну тогда можем в массив символов его записать. И по два символа через пробел выводить.
0
KennyLM
0 / 0 / 0
Регистрация: 17.07.2011
Сообщений: 4
16.08.2011, 00:04  [ТС] #6
Цитата Сообщение от Ree.exe Посмотреть сообщение
Ну тогда можем в массив символов его записать. И по два символа через пробел выводить.
Увы массивы еще не изучал... :*(
0
easybudda
Модератор
Эксперт CЭксперт С++
9632 / 5580 / 948
Регистрация: 25.07.2009
Сообщений: 10,714
16.08.2011, 00:20 #7
без массивов
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
#include <stdlib.h>
 
void print_by_two(int val){
    if ( val > 99 )
        print_by_two(val / 100);
    printf("%3d", val % 100);
}
 
int main(void){
    int i;
    
    while ( printf("Number: ") && scanf("%d", &i) == 1 ){
        if ( i < 0 )
            printf("-");
        print_by_two(abs(i));
        printf("\n");
    }
    
    return 0;
}
0
Jupiter
Каратель
Эксперт С++
6554 / 3975 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
16.08.2011, 00:54 #8
итерационный вариант
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
 
unsigned delete_first_digit(unsigned* n)
{
    unsigned i = *n, j = 1;
    for (*n = 0; i / 10; *n += j * (i % 10), j *= 10, i /= 10);
 
    return i;
}
 
int main()
{
    unsigned n = 123456;
    while (n / 10)
    {
    printf("%u%u ", delete_first_digit(&n), n % 10);
    n /= 10;
    }
    if (n)
        printf("%u ", n);
    return 0;
}
0
silentnuke
Android Programmer
139 / 140 / 5
Регистрация: 08.12.2010
Сообщений: 421
16.08.2011, 05:55 #9
всеже, при использовании строки будет надежнее.)
допустим возьмем число 110001.
у easybudda 11 0 1

у Maxwe11 11 10 оО
0
xAtom
915 / 740 / 60
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
16.08.2011, 06:44 #10
Цитата Сообщение от silentnuke Посмотреть сообщение
всеже, при использовании строки будет надежнее
Вот вариант со строкой.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
#include <string.h>
 
int main(void) {
    
   char  snum[32] = "12345";
   const char*  l, *f; 
   //gets(snum);
   
   l = snum + (strlen(snum) - 1);
   f = snum;
   while(f <= l){
      (f != l) ? printf("%c%c\n", *f, *l) : printf("%c\n", *f);
      ++f;
      --l;
   } 
   
   getch();
}
0
easybudda
Модератор
Эксперт CЭксперт С++
9632 / 5580 / 948
Регистрация: 25.07.2009
Сообщений: 10,714
16.08.2011, 11:09 #11
Цитата Сообщение от silentnuke Посмотреть сообщение
у easybudda 11 0 1
C
1
printf("%02d ", val % 100);
будет по две цифры выводить. Правда, с ведущим нулём...
0
diagon
Higher
1929 / 1195 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
16.08.2011, 13:33 #12
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
#include <boost/lexical_cast.hpp>
int main(){
    int x;
    std::cin >> x;
    std::string buf( boost::lexical_cast<std::string> (x) );
    for (size_t i = 0; i < buf.size() - 1 - ( buf.size() == 1 ? 0 : buf.size() & 1 ); i += 2)
        std::cout << buf[i] << buf[i + 1] << ' ';
    std::cout << (buf.size() & 1 ? buf[buf.size() - 1] : ' ' ) << std::endl;
}
Код
diagon@shadeware:~$ g++ test.cpp 
diagon@shadeware:~$ g++ test.cpp && ./a.out
123456
12 34 56  
diagon@shadeware:~$ ./a.out
12345
12 34 5
diagon@shadeware:~$
0
silentnuke
16.08.2011, 13:41
  #13

Не по теме:

diagon, прочтите ещё раз суть задания)

1
diagon
Higher
1929 / 1195 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
16.08.2011, 14:27 #14
А, ну да... Ну тогда так
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
#include <boost/lexical_cast.hpp>
int main(){
        int x;
        std::cin >> x;
        std::string buf( boost::lexical_cast<std::string> (x) );
        for (size_t i = 0, j = buf.size() - 1; i < j; ++i, --j)
                std::cout << buf[i] << buf[j] << ' ';
        std::cout << (buf.size() & 1 ? buf[buf.size() / 2] : ' ' ) << std::endl;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.08.2011, 14:27
Привет! Вот еще темы с ответами:

Вывести сумму первой и третьей цифры и произведение второй и четвертой цифры числа, заданного пользователем - C++
Пользователь вводит 4-значное число - программа выводит сумму первой и третьей цифры и произведение второй и четвертой цифры.

Образовать новое число, путём замены последней цифры на значение наименьшей цифры в записи исходного числа - C++
Помогите доделать задачу, минимальную цифру нашёл, последнюю цифру нашёл, только осталось присвоить значение минимальной цифры последней,...

В десятичной записи числа 42*4* пропущены 2 цифры. Определите эти цифры, если известно, что число кратно 72. - C++
Помогите,пожалуйста! С++

Найти двузначные числа, у которых сумма удвоенного квадрата первой цифры и квадрата второй цифры равен самому числу - C++
Найти двузначные числа, у которых сумма удвоенного квадрата первой цифры и квадрата второй цифры равен самому числу


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
16.08.2011, 14:27
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru