练习1——给小学生出100以内的加减法题,结果也不能超100:
出5个题,随机产生数据,随机做加减法,最后给出正确率,如图所示:
提示:产生0-99之间的随机数字:int number = (int)(Math.random()*100);
要求:代码规范,有注释,能正确运行出结果,.java源文件打包后,以自己名字命名提交。
提示:从控制台读入数据用Scanner类
Scanner input = new Scanner(System.in);
int i = input.nextInt();
Code
/**
* 作者:xxx
* 功能:5道加减法算术题
* 隐含条件:得数不得超过100,不能有负数
*/
package Sjx29;
import java.util.Scanner;
public class Cs01 {
public static void main(String[] args) {
//初始化变量
int count = 5; //计数器
int a,b,i = 0;
int right = 0,result = 0;
Scanner input = new Scanner(System.in); //输入语句
System.out.println(); //syso,回车【快捷键】
System.out.println("开始答题了,你准备好了吗?");
//为什么不能用for循环,用while循环--->for循环的i会多加一个才结束
// for (int i = 0; i < count; i++) {
while(i < 5) {
a = (int)(Math.random()*101); //产生0-100随机数【减数】
b = (int)(Math.random()*101); //产生0-100随机数[被减数]
//随机产生数,是奇数-->令符号为“-”号;反之..
int op = (int)(Math.random()*101);
if(op % 2 == 0) {
System.out.print(a+ "+" +b+ "=");
result = a + b;
}else {
if(a >= b) {
System.out.print(a+ "-" +b+ "=");
result = a - b;
}else {
System.out.print(b+ "-" +a+ "=");
result = b - a;
}
}
//得数不能超过100
if( result > 100) {
System.out.println("得数超过100,此题无效,继续作答");
continue;
}
int inputresult = input.nextInt(); //用户输入的数
if( inputresult == result ) {
right++;
System.out.println("正确!");
}else {
System.out.println("错误!");
}
i++; //while循环的结构
}
System.out.println("分数:" + (right * 20));
}
}
练习2——用*打印图案:
需求说明:打印直角三角形
提示:使用二重循环
/**
* 作者:xxx
* 功能:打印直角三角形
*/
package Sjx29;
import java.util.Scanner;
public class Zj01 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("输入打印的行数:");
int line = input.nextInt();
for (int i = 1; i <= line; i++) {
for (int j = 1; j <= 2*i-1; j++)
System.out.print("*");
System.out.println();
}
}
}
练习3——用*打印图案:
需求说明:打印等腰三角形:
提示:使用二重循环
/**
* 作者:xxx
* 功能:打印等腰三角形
*/
package Sjx29;
import java.util.Scanner;
public class Sjx01 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入打印行数:");
int line = input.nextInt();
//打印三角形 5行
for (int i=1; i<=line; i++){
for (int j=line; j>=i; j--){
System.out.print(" "); //注意不要换行
}
for (int j=1; j<=i; j++){
System.out.print("*");
}
for (int j=1; j<i; j++){
System.out.print("*");
}
System.out.println();
}
}
}
法2
/*
* 作者:xxx
* 功能:打印等腰三角形(法2)
*/
package Sjx29;
import java.util.Scanner;
public class Sjx02 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入打印行数:");
int line = input.nextInt();
for (int i = 1; i <= line; i++) {
for (int k = 1; k <= line - i; k++)
System.out.print(" ");
for (int j = 1; j <= 2*i - 1; j++)
System.out.print("*");
System.out.println();
}
}
}
附加题1——用*打印图案:
需求说明:打印菱形:
提示:使用二重循环
/**
* 作者:xxx
* 功能:打印菱形
*/
package Sjx29;
import java.util.Scanner;
import javafx.scene.shape.Line;
public class Lingx01 {
public static void main(String[] args) {
int line;
Scanner input = new Scanner(System.in);
do {
System.out.println("请输入奇数行数:");
line = input.nextInt();
}while(line % 2 == 0);
for (int i = 1; i <= line/2+1; i++) {
for (int k = 1; k <= line - i; k++)
System.out.print(" ");
for (int j = 1; j <= 2*i-1; j++)
System.out.print("*");
System.out.println();
}
for (int i = 0; i < line / 2; i++) {
for (int k = 0; k <= i+2 ; k++)
System.out.print(" ");
for (int j = 0; j < 2*(line/2-i)-1; j++)
System.out.print("*");
System.out.println();
}
}
}
附加题2——猜数小游戏
需求说明:
随机生成一个0~99(包括0和99)的数字,从控制台输入猜测的数字,输出提示太大还是太小,只允许猜3次
/**
* 作者:xxx
* 任务:猜数字
*/
package Sjx29;
import java.util.Random;
import java.util.Scanner;
public class Caishu {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int guess,count = 0;
//生成0-99随机数
// Random random = new Random();
// int num = random.nextInt(100);
int num = (int)(Math.random()*100); //生成0-99随机数
System.out.println("答案为: " + num);
do{
System.out.println("请猜数:");
guess = input.nextInt();
if(guess > num) {
System.out.println("猜大了");
}
else if (guess < num) {
System.out.println("猜小了");
}
count++; //虽然从0开始,但是算间隔数
if(count == 3)
break;
}while(num != guess);
System.out.println("count:"+count);
//边界问题
if(count <= 3 && num == guess ) {
System.out.println("猜对了");
}
else {
System.out.println("很遗憾,数字为:"+num);
}
}
}
总结
逻辑不强,注意边缘问题,找规律