循环结构进阶:例题
1. 编写程序,打印如下图案,要求该图案的行数由用户输入:
1
1 2
1 2 3
1 2 3 4
1 2 3 4 5
import java.util.Scanner;
public class Dijiuzhang {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
System.out.println("请输入该图案的行数:");
int row=input.nextInt();
for(int i = 1; i <=row ; i++){
for(int j=1;j<=2*i-1;j++){
System.out.print(j);
}
System.out.println("\n");
}
}
}
2. 百钱百鸡
import java.util.Scanner;
public class Dijiuzhang {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
int i; //公鸡数
int j; //母鸡数
int k; //小鸡数
for(i=0;i<20;i++){
for(j=0;j<30;j++){
k=100-i-j; //*计算小鸡的数量
if(5*i+3*j+k/3==100){
System.out.println("公鸡:"+i+"母鸡"+j+"小鸡"+k);
}
}
}
}
}
3. 统计出三个班级大于85分以上的学员的平均分
import java.util.Scanner;
public class Dijiuzhang {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
int count = 0; //存储大于85分以上的人数
double num = 0, sum = 0; //*存储学员成绩,存储大于85分以上的总成绩
for (int i = 0; i < 3; i++) { //*外层控制班级数量
System.out.println("第" + (i + 1) + "班的成绩:");
for (int j = 0; j < 4; j++) {//*内层控制学员成绩
System.out.println("请输入第" + (j + 1) + "位学员的成绩:");
num = input.nextDouble();
if (num >= 85) { //*如果成绩大于85分
sum += num; //*85分以上的就累加
count++; //*记录85分以上的人数
}
}
System.out.println("大于85分以上的人数"+count+"人\t"+"平均分:" + sum / count);//*输出平均分
}
}
}
4. ATM取款
import java.util.Scanner;
public class Dijiuzhang {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
int password=111111;
for(int i=0;i<3;i++){ //*外层控制用户输入的密码次数是否通过
System.out.println("请输入密码:");
password=input.nextInt();
if(password==111111){
System.out.println("登录成功");
}else{
System.out.println("密码错误,您还有"+(3-i-1)+"次输入机会");
continue; //*控制如果输入错误,跳过本次输入,进行下一次输入
}
System.out.println("请输入金额:");
int money=input.nextInt();
for(int a=0;a<1000;a++){ //*内层控制用户输入的金额是否合法
if(money>=100 && money<=1000 && money%100==0){
System.out.println("您取了"+money+"元");
System.out.println("完成交易,请取卡!");
break; //*交易成功,结束交易
}else{
System.out.println("您输入的金额不合法,请从新输入:");
money=input.nextInt();
continue; //*控制如果输入的金额不合法,跳过本次输入,进行下一次输入
}
}
break;
}
}
}
5. 打印菱形
import java.util.Scanner;
public class Dijiuzhang {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
System.out.println("请输入菱形的高度(行数):");
int height=input.nextInt();
while(height%2==0){
System.out.println("请输入奇数");
height=input.nextInt();
}
int n=(height+1)/2; //*分开打印,这是一个等腰三角形的行数
for(int i=1;i<=n;i++){ //*外层循环变量i控制行数
for(int j=1;j<=n-i;j++){ //*内层循环变量j控制该行的空格数
System.out.print(" ");
}
for(int k=1;k<=2*i-1;k++){ //*内层循环变量k控制改行的*符号
System.out.print("*");
}
System.out.println();
}
//*以下菱形下半部分
for(int w=1;w<=n;w++){ //*外层循环变量w控制行数
for(int p=1;p<=w;p++){ //*内层循环变量j控制该行的空格数
System.out.print(" ");
}
for(int g=1;g<=(2*(n-w)-1);g++){ //*内层循环变量g控制该行的*符号
System.out.print("*");
}
System.out.println(); //*外层控制换行
}
}
}