Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.11.2011, 23:45   #1
Horrorrer
Новичок
Джуниор
 
Регистрация: 28.11.2011
Сообщений: 2
По умолчанию Разбиение числа на цифры, из которых оно состоит

Всем доброго времени суток! Есть задачка:
Программа должна принимать на ввод от пользователя пятизначное число, а затем выводить цифры, из которых данное число состоит по отдельности, отделяя их друг от друга тремя пробелами. То есть если пользователь ввёл например число 42339, то она должна вывести "4 2 3 3 9". При этом пользоваться можно только делением и вычислением модуля(остатка), а также оператором if. Ломал голову 3 часа, но решения так и не нашёл. Может быть вы подскажете мне как это сделать? Заранее благодарен.
P.S. Задача из книги "Deitel. Java how to program.".
Horrorrer вне форума Ответить с цитированием
Старый 29.11.2011, 00:46   #2
_Колибри_
Пользователь
 
Аватар для _Колибри_
 
Регистрация: 22.10.2011
Сообщений: 15
По умолчанию

Вот на C++

Код:
#include "stdafx.h"
using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
  const ArrSize = 5;	// 5-ти значное число
  int number;
  int arrNum[ArrSize] = {0};
  int i;

  cout << "Enter number: ";
  cin >> number;		

  for (i = ArrSize-1; i >= 0; i--)
  {
     arrNum[i] = number % 10;
     number = number / 10;
  }

  for (i = 0; i < ArrSize; i++)
    cout << arrNum[i] << "   ";


  cin.get();
  cin.get();
  return 0;
}
_Колибри_ вне форума Ответить с цитированием
Старый 29.11.2011, 08:22   #3
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

Вот простенький способ можете его циклом оформить
Код:
function FormatValue(val:word):string;
var b1,b2:byte;
    sep:word;
begin
 sep:=10000;
 result:='';
 b1:=val div sep;
 result:=result + char(48+b1);
 sep:=sep div 10;
 b1:=(val div sep) mod 10;
 result:=result+char(48+b1);
 sep:=sep div 10;
 b1:=(val div sep) mod 10;
 result:=result+char(48+b1);
 sep:=sep div 10;
 b1:=(val div sep) mod 10;
 result:=result+char(48+b1);
 sep:=sep div 10;
 b1:=(val div sep) mod 10;
 result:=result+char(48+b1);
end;
SERG1980 вне форума Ответить с цитированием
Старый 29.11.2011, 15:06   #4
Horrorrer
Новичок
Джуниор
 
Регистрация: 28.11.2011
Сообщений: 2
По умолчанию

Всем огромное спасибо, но задача должна быть решена без использования циклов. Вот моё решение:
Код:
// Homework_2_30
// (Separating the Digits in an Integer) Write an application that inputs one number consisting
// of five digits from the user, separates the number into its individual digits and prints the digits
// separated from one another by three spaces each.
import java.util.Scanner;   // program uses class Scanner

public class Homework_2_30 {
    
    // method main begins execution of Java Application
    public static void main(String[] args) {
        // create new scanner
        Scanner input = new Scanner( System.in );
        
        // variables
        int number; // variable for input
        int division;   // result of division
        int remainder; // result of remainder
        
        
        // input
        System.out.print( "Enter number which consists of 5 digits: " );
        number = input.nextInt();
        
        // calculation
        remainder = number % 10000; 
        division = number / 10000;
        number = remainder;
        
        System.out.printf( "%d   ", division );
        
        remainder = number % 1000;
        division = number / 1000;
        number = remainder;
        
        System.out.printf( "%d   ", division );
        
        remainder = number % 100;
        division = number / 100;
        number = remainder;
        
        System.out.printf( "%d   ", division );
        
        remainder = number % 10;
        division = number / 10;
        number = remainder;
        
        System.out.printf( "%d   ", division );
        
        System.out.printf( "%d\n", number );
        
    }
}
Horrorrer вне форума Ответить с цитированием
Старый 29.11.2011, 16:15   #5
Mandrivnyk
Software Developer
Участник клуба
 
Аватар для Mandrivnyk
 
Регистрация: 01.03.2011
Сообщений: 1,098
По умолчанию

А еще можно попробовать загнать это все в рекурсивную функцию...
Болтовня ничего не стоит. Покажите мне код. (c) Linus Torvalds
Помог ответ? -- Поставьте отзыв.
Выражения особой благодарности в рублевом эквиваленте отправлять сюда --> R269634919062
Mandrivnyk вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вычислить значение целого числа, десятичные цифры которого формируются датчиком случайных чисел (задача С шарп) mill63 Помощь студентам 0 22.11.2011 13:58
дача:дано число n.Правдали оно содержит ровно 3 одинаковых цифры Dima170792 Помощь студентам 4 25.05.2011 20:19
VisualBasic.Исключить из числа цифры, стоящие между первой и последней цифрой числа. ride013 Помощь студентам 0 03.05.2011 21:20
Разбиение числа Neitrosha Помощь студентам 1 26.11.2010 23:21
Разбиение числа на слагаемые p1r2o3 Помощь студентам 23 16.03.2010 13:38