Необходимо написать программу, которая:
- загадывает случайное целое число из [−10;10], исключая ноль. При этом, постарайтесь, чтобы распределение случайных чисел генерируемых программой было равномерных (т. е. в случае выпадения нуля его нельзя просто заменить на какое-то другое число, например, на 1, ведь тогда 1 будет выпадать с вдвое большей вероятностью, чем остальные числа);
- просит пользователя его угадать, вводя варианты с клавиатуры;
- пока пользователь не угадает число, программа будет ему подсказывать, сообщая больше или меньше число загаданное, чем то, что ввёл пользователь;
- Программа должна подсказывать пользователю, что он ошибся в знаке, если программа загадала положительное число, а пользователь ввёл отрицательное. И наоборот.
1. Сгенерируем случайное целое число из диапазона -10,10;
2. Если генерируется 0, мы должны повторить генерацию, пока не получим число из нужного диапазона, но не 0;
3. Создадим обект Scanner и попросим пользователся ввести целое число, из заданного отрезка;
4. Проверим является ли заданное число целым, если нет - укажем на ошибку;
5. Проверим находится ли введенное число в заданном диапазоне, если нет - укажем на ошибку и попросим ввести число заново;
6. Проверим - угадал ли пользователь загаданное число, если да - выведем поздравительное сообщение. Переменная с будет увеличиваться на один, каждый, когда число введено неправильно;
7. Если число не угадано проверим какое из чисел больше, и сообщим пользователю. Также, проверим совпадают ли знаки загаданного числа и введенного пользователем;
import java.util.Scanner;
public class Zadachi{
public static void main(String[] args){
int a,b,c=0;
//Генерируем случайное целое число из диапазона -10,10
//Если a=0 повторяем генерацию
do{
a= (int)(Math.random()*20+1)-10;
}
while(a==0);
Scanner scn=new Scanner(System.in);
System.out.println("Введите целое число из отрезка -10,10");
if(scn.hasNextInt()){
do{
b=scn.nextInt();
if(b<-10||b==0||b>10){
System.out.println("Вы ввели число не из-заданного диапазона или 0");
System.out.println("Повторите ввод");
}
else{
++c;
if(b==a){
System.out.println("Вы угадали с "+c+" попытки");
}
else{
if(b<a)System.out.println("Число больше");
else System.out.println("Число меньше");
if((b<0&a>0)||(b>0&a<0))
System.out.println("Число с другим знаком");
}
}
}
while(b!=a);
}
else System.out.println("Ошибка. Введено не целое число");
}
}
Комментариев нет:
Отправить комментарий