求一个java程序
用户循环输入4位会员号。判断是否中奖。输入n结束操作。说明:程序开始时生成一个0-9的随机数字,当用户会员号的百位与十位的差值与随机数字相等时为中奖。效果如下图:请输入四...
用户循环输入4位会员号。判断是否中奖。输入n结束操作。
说明:程序开始时生成一个0-9的随机数字,当用户会员号的百位与十位的差值与随机数字相等时为中奖。效果如下图:
请输入四位会员号:
1234
很遗憾。没中。
是否继续?(y/n)
y
请输入四位会员号:
2135
恭喜你中奖了。
是否继续?(y/n)
n
程序结束。
我是初学者。我自己写的代码很简单。程序都对。就是那个随机数老是出问题。怎么解决?
我用的是int i=(int)(Math.random()*10);
int id=0410;//假设
int shi=id/10%10;
int bai=id/100%10;
int a=Math.abs(shi-bai); 这样好像是可以。但是总有问题。是哪里错了?
int i= (int)(Math.random()*10);
int id=0410;
int shi=id/10%10;
int bai=id/100%10;
int a=Math.abs(shi-bai);
String in="";
Scanner input=new Scanner(System.in);
do{
System.out.println("请输入四位会员号:");
id=input.nextInt();
if(a==i){
System.out.println("恭喜你。中奖了。");
}else{
System.out.println("很遗憾。没有中。");
}
System.out.println("是否继续?(y/n)");
in=input.next();
}while(in.equals("y"));
System.out.println("程序结束。");
帮我看看哪里错了。 展开
说明:程序开始时生成一个0-9的随机数字,当用户会员号的百位与十位的差值与随机数字相等时为中奖。效果如下图:
请输入四位会员号:
1234
很遗憾。没中。
是否继续?(y/n)
y
请输入四位会员号:
2135
恭喜你中奖了。
是否继续?(y/n)
n
程序结束。
我是初学者。我自己写的代码很简单。程序都对。就是那个随机数老是出问题。怎么解决?
我用的是int i=(int)(Math.random()*10);
int id=0410;//假设
int shi=id/10%10;
int bai=id/100%10;
int a=Math.abs(shi-bai); 这样好像是可以。但是总有问题。是哪里错了?
int i= (int)(Math.random()*10);
int id=0410;
int shi=id/10%10;
int bai=id/100%10;
int a=Math.abs(shi-bai);
String in="";
Scanner input=new Scanner(System.in);
do{
System.out.println("请输入四位会员号:");
id=input.nextInt();
if(a==i){
System.out.println("恭喜你。中奖了。");
}else{
System.out.println("很遗憾。没有中。");
}
System.out.println("是否继续?(y/n)");
in=input.next();
}while(in.equals("y"));
System.out.println("程序结束。");
帮我看看哪里错了。 展开
4个回答
展开全部
public static void main(String[] args) {
int random = -1;
Scanner sc = new Scanner(System.in);
while (true) {
// 生成随机数据,用于游戏开始或重新开始
if (random == -1) {
random = (int) (Math.random() * 10);
System.out.println(random);
}
System.out.println("请输入四位会员号:");
String str = sc.next();
int num = 0;
try {
num = Integer.parseInt(str);
} catch (Exception e) {
System.out.println("输入错误,请继续");
continue;
}
if (num < 1000 || num > 9999) {
System.out.println("输入错误,请继续");
continue;
}
int b = num / 100 % 10;
int s = num / 10 % 10;
// 差值
int diff = Math.abs(b - s);
if (diff == random) {
System.out.println("恭喜你中奖了。");
// 准备重新开始计算
random = -1;
}else{
System.out.println("很遗憾。没中。");
}
System.out.println("是否继续?(y/n)");
if (sc.next().equals("n")) {
break;
}
}
}
int random = -1;
Scanner sc = new Scanner(System.in);
while (true) {
// 生成随机数据,用于游戏开始或重新开始
if (random == -1) {
random = (int) (Math.random() * 10);
System.out.println(random);
}
System.out.println("请输入四位会员号:");
String str = sc.next();
int num = 0;
try {
num = Integer.parseInt(str);
} catch (Exception e) {
System.out.println("输入错误,请继续");
continue;
}
if (num < 1000 || num > 9999) {
System.out.println("输入错误,请继续");
continue;
}
int b = num / 100 % 10;
int s = num / 10 % 10;
// 差值
int diff = Math.abs(b - s);
if (diff == random) {
System.out.println("恭喜你中奖了。");
// 准备重新开始计算
random = -1;
}else{
System.out.println("很遗憾。没中。");
}
System.out.println("是否继续?(y/n)");
if (sc.next().equals("n")) {
break;
}
}
}
展开全部
import java.util.*;
public class Prize{
public static void main(String [] args){
int num=(int)(Math.random()*10);
System.out.println(num);
Scanner s=new Scanner(System.in);
while(true){
System.out.println("请输入四位会员号:");
String member=s.next();
char [] test= member.toCharArray();
if(member.equals("n"))
{
System.out.println("程序结束。");
break;}
else{
if(member.length()!=4||test[0]>'9'||test[0]<'0'||test[1]>'9'||test[1]<'0'||test[2]>'9'||test[2]<'0'||test[3]>'9'||test[3]<'0'){
System.out.println("invalid input.Please input again");
}
else{
int val = Integer.valueOf(test[2]) - Integer.valueOf(test[3]);
if(val==num){
System.out.println("恭喜你中奖了。");
}
else{
System.out.println("很遗憾。没中。");
}
}
}
}
}
}
随机数就是Math.random() 阿。有什么问题么
public class Prize{
public static void main(String [] args){
int num=(int)(Math.random()*10);
System.out.println(num);
Scanner s=new Scanner(System.in);
while(true){
System.out.println("请输入四位会员号:");
String member=s.next();
char [] test= member.toCharArray();
if(member.equals("n"))
{
System.out.println("程序结束。");
break;}
else{
if(member.length()!=4||test[0]>'9'||test[0]<'0'||test[1]>'9'||test[1]<'0'||test[2]>'9'||test[2]<'0'||test[3]>'9'||test[3]<'0'){
System.out.println("invalid input.Please input again");
}
else{
int val = Integer.valueOf(test[2]) - Integer.valueOf(test[3]);
if(val==num){
System.out.println("恭喜你中奖了。");
}
else{
System.out.println("很遗憾。没中。");
}
}
}
}
}
}
随机数就是Math.random() 阿。有什么问题么
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Demo {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Demo demo = new Demo();
int ranNum = (int) (Math.random()*10);
boolean flag =true;
System.out.println("请输入四位会员号:");
while(1==1){
String value = demo.getInput();
flag = demo.checkInput(value,ranNum);
if(!flag){
break;
}
}
}
public Boolean checkInput(String value,int ranNum){
try{
int valueNum = Integer.parseInt(value);
if(value.length()==4){
valueNum = valueNum%1000;
int bai = valueNum/100;
valueNum = valueNum%100;
int shi = valueNum/10;
if(Math.abs(bai-shi)==ranNum){
System.out.println("恭喜你中奖了");
}else{
System.out.println("很遗憾,没中");
}
System.out.println("是否继续");
return true;
}else{
System.out.println("输入不合法!");
System.out.println("请输入四位会员号:");
return true;
}
}catch(Exception e){
if(value.toUpperCase().equals("Y")){
System.out.println("请输入四位会员号:");
return true;
}else if(value.toUpperCase().equals("N")){
System.out.println("程序结束!");
return false;
}else{
System.out.println("输入中含有非数字!");
System.out.println("请输入四位会员号:");
return true;
}
}
}
public String getInput(){
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String userNum = reader.readLine();
return userNum;
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
}
测试过的,建个Demo类,直接跑就好了
import java.io.IOException;
import java.io.InputStreamReader;
public class Demo {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Demo demo = new Demo();
int ranNum = (int) (Math.random()*10);
boolean flag =true;
System.out.println("请输入四位会员号:");
while(1==1){
String value = demo.getInput();
flag = demo.checkInput(value,ranNum);
if(!flag){
break;
}
}
}
public Boolean checkInput(String value,int ranNum){
try{
int valueNum = Integer.parseInt(value);
if(value.length()==4){
valueNum = valueNum%1000;
int bai = valueNum/100;
valueNum = valueNum%100;
int shi = valueNum/10;
if(Math.abs(bai-shi)==ranNum){
System.out.println("恭喜你中奖了");
}else{
System.out.println("很遗憾,没中");
}
System.out.println("是否继续");
return true;
}else{
System.out.println("输入不合法!");
System.out.println("请输入四位会员号:");
return true;
}
}catch(Exception e){
if(value.toUpperCase().equals("Y")){
System.out.println("请输入四位会员号:");
return true;
}else if(value.toUpperCase().equals("N")){
System.out.println("程序结束!");
return false;
}else{
System.out.println("输入中含有非数字!");
System.out.println("请输入四位会员号:");
return true;
}
}
}
public String getInput(){
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String userNum = reader.readLine();
return userNum;
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
}
测试过的,建个Demo类,直接跑就好了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
package cn.qbq.questions;
import java.util.Scanner;
/**
* 用户循环输入4位会员号。判断是否中奖。输入n结束操作。
*
* @author a483183
*
*/
public class Reward {
/**
* @param args
*/
public static void main(String[] args) {
// 程序开始时生成一个0-9的随机数字,
int luckyNumber = (int) (Math.random()*10);
boolean isContinue;
do {
// 请输入四位会员号
System.out.println("请输入四位会员号");
Scanner scanner = new Scanner(System.in);
String input = scanner.nextLine();
char[] inputChars = input.toCharArray();
int num = Integer.valueOf(inputChars[2]) - Integer.valueOf(inputChars[3]);
// 当用户会员号的百位与十位的差值与随机数字相等时为中奖。
if (luckyNumber != num) {
System.out.println(input + "很遗憾。没中。");
} else {
System.out.println(input + "恭喜你中奖了。");
}
// 是否继续?(y/n)
System.out.println("是否继续?(y/n)");
scanner = new Scanner(System.in);
input = scanner.nextLine();
isContinue = "y".equalsIgnoreCase(input);
} while (isContinue);
}
}
随机数出什么问题
import java.util.Scanner;
/**
* 用户循环输入4位会员号。判断是否中奖。输入n结束操作。
*
* @author a483183
*
*/
public class Reward {
/**
* @param args
*/
public static void main(String[] args) {
// 程序开始时生成一个0-9的随机数字,
int luckyNumber = (int) (Math.random()*10);
boolean isContinue;
do {
// 请输入四位会员号
System.out.println("请输入四位会员号");
Scanner scanner = new Scanner(System.in);
String input = scanner.nextLine();
char[] inputChars = input.toCharArray();
int num = Integer.valueOf(inputChars[2]) - Integer.valueOf(inputChars[3]);
// 当用户会员号的百位与十位的差值与随机数字相等时为中奖。
if (luckyNumber != num) {
System.out.println(input + "很遗憾。没中。");
} else {
System.out.println(input + "恭喜你中奖了。");
}
// 是否继续?(y/n)
System.out.println("是否继续?(y/n)");
scanner = new Scanner(System.in);
input = scanner.nextLine();
isContinue = "y".equalsIgnoreCase(input);
} while (isContinue);
}
}
随机数出什么问题
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询