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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.90
KennyLM
0 / 0 / 0
Регистрация: 17.07.2011
Сообщений: 4
15.08.2011, 23:55     От числа отделить попарно цифры #1
Вводим любое рендомное целое число. К примеру 123456 на екране должно появится - 16 25 34, если к примеру 12345 то - 15 24 3 . Желательно сделать код через while.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Paporotnik
383 / 227 / 7
Регистрация: 06.07.2011
Сообщений: 512
15.08.2011, 23:58     От числа отделить попарно цифры #2
и? ждешь пока тебе напишут ответ? а сам ничего не придумал?
Ree.exe
56 / 56 / 4
Регистрация: 01.08.2011
Сообщений: 141
16.08.2011, 00:00     От числа отделить попарно цифры #3
Число вводится с клавиантуры или функцией rand() генерируется?
KennyLM
0 / 0 / 0
Регистрация: 17.07.2011
Сообщений: 4
16.08.2011, 00:01  [ТС]     От числа отделить попарно цифры #4
Цитата Сообщение от Ree.exe Посмотреть сообщение
Число вводится с клавиантуры или функцией rand() генерируется?
с клавиатуры через cin
Ree.exe
56 / 56 / 4
Регистрация: 01.08.2011
Сообщений: 141
16.08.2011, 00:03     От числа отделить попарно цифры #5
Ну тогда можем в массив символов его записать. И по два символа через пробел выводить.
KennyLM
0 / 0 / 0
Регистрация: 17.07.2011
Сообщений: 4
16.08.2011, 00:04  [ТС]     От числа отделить попарно цифры #6
Цитата Сообщение от Ree.exe Посмотреть сообщение
Ну тогда можем в массив символов его записать. И по два символа через пробел выводить.
Увы массивы еще не изучал... :*(
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9382 / 5432 / 916
Регистрация: 25.07.2009
Сообщений: 10,428
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;
}
Jupiter
Каратель
Эксперт C++
6545 / 3965 / 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;
}
silentnuke
Android Programmer
137 / 138 / 5
Регистрация: 08.12.2010
Сообщений: 421
16.08.2011, 05:55     От числа отделить попарно цифры #9
всеже, при использовании строки будет надежнее.)
допустим возьмем число 110001.
у easybudda 11 0 1

у Maxwe11 11 10 оО
xAtom
 Аватар для xAtom
910 / 735 / 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();
}
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9382 / 5432 / 916
Регистрация: 25.07.2009
Сообщений: 10,428
16.08.2011, 11:09     От числа отделить попарно цифры #11
Цитата Сообщение от silentnuke Посмотреть сообщение
у easybudda 11 0 1
C
1
printf("%02d ", val % 100);
будет по две цифры выводить. Правда, с ведущим нулём...
diagon
Higher
 Аватар для diagon
1921 / 1187 / 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:~$
silentnuke
16.08.2011, 13:41
  #13

Не по теме:

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

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.08.2011, 14:27     От числа отделить попарно цифры
Еще ссылки по теме:

Для натурального числа определить истинность предиката «все цифры в записи числа равны» C++
Исключить из числа цифры, стоящие между первой и последней цифрой числа. Использовать классы C++
C++ Отделить один знак из 5-значного числа
C++ Проверить, есть ли в записи числа m цифры, совпадающие с цифрами в записи числа n
Получить из трехзначного числа четырехзначное подстановкой в начало числа цифры его единиц C++

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

Или воспользуйтесь поиском по форуму:
diagon
Higher
 Аватар для diagon
1921 / 1187 / 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;
}
Yandex
Объявления
16.08.2011, 14:27     От числа отделить попарно цифры
Ответ Создать тему
Опции темы

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