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

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

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 31.08.2011, 14:34   #1
turtles
Пользователь
 
Регистрация: 17.02.2011
Сообщений: 59
По умолчанию Наибольшая цифра трехзначного числа

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

Программа составлена по заданию:
Создать программу, выводящую на экран случайно
сгенерированное трёхзначное натуральное
число и его наибольшую цифру.
Код:
public class Test {
   public static void main(String args []){
       final int min = 100;
        final int max = 999;
         int first;
         int second;
         int third;
          int value_max;
       int value = (int) (min + Math.random() * (max - min)) ;
       if(value > min && value < max) {
           first = (int) Math.floor(value / 100);
            second = (int) Math.floor((value - first * 100) / 10);
             third = (int) Math.floor(value - first * 100 - second * 10);
            System.out.println("Трехзначное число = "  + value);
               if(first > second){
                  value_max = first;
                    if(value_max < third){
                       value_max = third;
                 } else {value_max = second;}
 
          }else{ value_max = second;}
           if(value_max < third)
                       value_max = third;
            System.out.println("Первое число = "  + first);
            System.out.println("Второе число = "  + second);
            System.out.println("Третье число = "  + third);
            System.out.println("Максимальное число = "  + value_max);
 
             }
       }
}
И еще такой вопрос по какой формуле можно также вычислить наибольшию цифру четырех и пятизначного числа и т.д.
turtles вне форума Ответить с цитированием
Старый 31.08.2011, 17:44   #2
ofenod
Пользователь
 
Регистрация: 30.03.2011
Сообщений: 24
По умолчанию

У тебя в условиях какая-то путаница. Поробуй такой вариант:
Код:
public static void main(String[] args) {
		// TODO Auto-generated method stub
		final int min = 100;
        final int max = 999;
         int first;
         int second;
         int third;
          int value_max;
       int value = (int) (min + Math.random() * (max - min)) ;
       if(value > min && value < max) {
           first = (int) Math.floor(value / 100);
            second = (int) Math.floor((value - first * 100) / 10);
             third = (int) Math.floor(value - first * 100 - second * 10);
            System.out.println("Трехзначное число = "  + value);
            value_max = 0;   
            if(first > value_max){
                  value_max = first;}
            if(second > value_max){
                  value_max = second;}
            if(third > value_max){
            	value_max = third;}
            
            System.out.println("Первое число = "  + first);
            System.out.println("Второе число = "  + second);
            System.out.println("Третье число = "  + third);
            System.out.println("Максимальное число = "  + value_max);
 
          }
            
 
             }
ofenod вне форума Ответить с цитированием
Старый 31.08.2011, 17:48   #3
ofenod
Пользователь
 
Регистрация: 30.03.2011
Сообщений: 24
По умолчанию

Код:
else{ value_max = second;}  //Вот эти строчки 
           if(value_max < third)  //в твоем коде по-моему вообще
                       value_max = third;  //не нужны

            System.out.println("Первое число = "  + first);
            System.out.println("Второе число = "  + second);
            System.out.println("Третье число = "  + third);
            System.out.println("Максимальное число = "  + value_max);
ofenod вне форума Ответить с цитированием
Старый 01.09.2011, 06:53   #4
turtles
Пользователь
 
Регистрация: 17.02.2011
Сообщений: 59
По умолчанию

Огромное спасибо за совет, ofenod
turtles вне форума Ответить с цитированием
Старый 01.09.2011, 07:31   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от turtles
И еще такой вопрос по какой формуле можно также вычислить наибольшию цифру четырех и пятизначного числа и т.д.
turtles, я не знаю java, поэтому могу помочь только алгоритмом.
для того, чтобы найти максимальную цифру любого числа,
надо использовать следующий подход:
Код:
  МаксЦифра = 0;
  while Число > 0 do 
  {
     Очередная_цифра = Получить остаток от целочисленного деления Число на 10;
     Число = Число челочисленно разделить на 10;
     if  Очередная_цифра > МаксЦифра тогда МаксЦифра = Очередная_цифра
   }
   Выдать результат: МаксЦифра
всё...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 26.09.2011, 05:29   #6
AnKor94
Пользователь
 
Регистрация: 24.11.2009
Сообщений: 54
По умолчанию

Код:
public class qwerty
{
  public static void main(String[] args) 
    {
    int max=0, a=(int)((Math.random())*1000);
	if (a==1000) a--;
	if (a<100) a+=100;
	System.out.println(a);
	if (a/100>max) max=a/100;
	if ((a/10)%10>max) max=(a/10)%10;
	if ((a%100)%10>max) max=(a%100)%10;
	System.out.println(max);	
	}
}

________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.
141.116.168.135 : damiu2d449028.dami.army.pentagon.mi l (.MIL | US Military)

Последний раз редактировалось Serge_Bliznykov; 26.09.2011 в 08:30.
AnKor94 вне форума Ответить с цитированием
Старый 26.09.2011, 08:40   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

имхо, случайная генерация трёхзначного числа безобразная!
Цитата:
random()
Returns a double value with a positive sign, greater than or equal to 0.0 and less than 1.0.
Если нужно получить трёхзначное случайное число,
вполне логично и достаточно написать всего одну строчку кода:
Код:
a=(int)((Math.random())*900)+100;
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сумма цифр введенного трехзначного числа. Дельфи by -ORTODOX- Помощь студентам 20 02.02.2011 14:21
как выяснить, входит ли цифра в запись числа? boltik Помощь студентам 2 29.06.2010 23:52
Сумма каких либо двух цифер заданного трехзначного числа N равна третей цифре. Blos Помощь студентам 4 29.06.2009 16:25
Сумма каких либо двух цифер заданного трехзначного числа N равна третей цифре. Blos Помощь студентам 2 28.06.2009 15:27
наименьшая цифра числа в delphi SALOmandra Помощь студентам 2 22.04.2008 15:57