Java实现输入三个数并把这三个数由小到大输出,输入学生的成绩存入数组输出成绩等级的两个程序代码

目录

前言

一、输入三个数并把这三个数由小到大输出

1.1运行流程(思想)

1.2代码段

1.3运行截图

二、输入学生的成绩存入数组输出成绩等级

1.1运行流程(思想)

1.2代码段

1.3运行截图


前言

1.因多重原因,本博文有两个代码程序组成,若有选择,可实现在目录里进行快速查找;

2.本弹窗界面可以根据简单的要求实现一使用功能。同时可以实现自定义的设置;

3.该系统只能在控制台(eclipse等版本)上运行,同时需要搭配jdk8等环境;

4.这里要特别说明,如果要粘贴完整的代码包名和我的不一致,程序是指定运行不出来的,请手动更改;

5.本代码是我在上学时写的,有一些地方没能完美实现,请包涵也请多赐教,若您发现了问题也请麻烦您将问题反馈给我,我好更正错误、总结完善、持续改善! 


提示:以下是本篇文章正文内容,下面案例可供参考

一、输入三个数并把这三个数由小到大输出

1.1运行流程(思想)

这是一个在Java中定义参数内容,然后需要定义三个整数变量并依次输入他们的值,然后使用for循环进行判断并赋值(此处需将变量赋值给其他数值存放中间变量的),最后进行程序输出。具体设置思想如下:

1.2代码段

代码如下(示例):

package 程序基础;

import java.util.Scanner;

public class 输入三个整数xyz请把这三个数由小到大输出 {
	
		public static void main(String[] args) {
			int t=0;
			Scanner in=new Scanner(System.in);	
			System.out.println("请输入三个整数:");
			int x=in.nextInt();
			int y=in.nextInt();
			int z=in.nextInt();
			if(x>y){
				t=y;
				y=x;
				x=t;
			}
			if(x>z){
				//a,c交换
				t=z;
				z=x;
				x=t;
			}
			if(y>z){
				t=z;
				z=y;
				y=t;
			}
			System.out.println(x+","+y+","+z);
		}

	}

1.3运行截图

代码如下(示例):

二、输入学生的成绩存入数组输出成绩等级

1.1运行流程(思想)

这是一个在Java中定义参数内容,然后需要定义一个数组存放变量当中,使用if else if语句进行循环判断,最后进行程序输出。具体设置思想如下:

1.2代码段

代码如下(示例):

package 程序基础;

import java.util.Scanner;

public class 编写程序键盘输入5名学生成绩存入数组中输出相应等级并计算总分等 {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
	

		int sum = 0;
		float avg=0;
		Scanner in= new Scanner(System.in);
        int score[]=new int[5];
        for (int i = 0; i <score.length; i++) {
        	System.out.println("您输入第"+(i+1)+"名同学的成绩");
        	score[i]=in.nextInt();
            if (score[i]< 0 || score[i]> 100) {
                System.out.println("您输入的数据是一个非法数据");
            } else if (score[i]<60) {
                System.out.println("不及格");
            } else if (score[i] < 70) {
                System.out.println("及格");
            } else if (score[i]< 80) {
                System.out.println("中等");
            } else if (score[i]< 90) {
                System.out.println("良好");
            } else {
                System.out.println("优秀");
            }
            sum += score[i];
        }
        avg=sum/5.0f;
        System.out.println("这五名学生总分为:" + sum);
        System.out.println("这五位同学的平均成绩为:" + avg);
    }
}

1.3运行截图

代码如下(示例):

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 以下是Java代码,其中使用了HashMap来记录每个斜率的出现次,以便快速计算是否存在等腰三角形: ```Java import java.util.HashMap; public class Solution { public int countIsoscelesTriangles(int n, int[] x, int[] y) { int res = 0; for(int i = 0; i < n; i++){ HashMap<Double, Integer> slopeMap = new HashMap<>(); for(int j = 0; j < n; j++){ if(j != i){ double s = calculateSlope(x[i], y[i], x[j], y[j]); slopeMap.put(s, slopeMap.getOrDefault(s, 0) + 1); } } for(int count: slopeMap.values()){ res += count * (count - 1) / 2; } } return res; } private double calculateSlope(int x1, int y1, int x2, int y2){ if(x1 == x2) return Double.MAX_VALUE; // vertical line return (double)(y2 - y1) / (double)(x2 - x1); } } ``` ### 回答2: 要求给定n和坐标,求其中三个坐标能够表示一个等腰三角形的组。首先,我们可以通过遍历所有可能的三个坐标组合来解决这个问题。但是这种方法的时间复杂度为O(n^3),当n较大时效率会很低。接下来,我将介绍一种优化的解决方法,并给出java的示例代码。 为了求得等腰三角形的组,我们可以以每个坐标点A为基准点,遍历其他所有点B,计算AB的距离,并将距离存入一个Map中。其中,Map的key为距离,value为该距离出现的次。 接下来,我们遍历Map,对于每个距离x,其对应的组为 C(count, 2),即该距离出现次的组合。最后,我们将每个距离对应的组累加,即可得到最终结果。 以下是java代码示例: ``` import java.util.HashMap; import java.util.Map; public class CountIsoscelesTriangles { public static void main(String[] args) { int[] xCoordinates = {1, 2, 3, 4}; int[] yCoordinates = {2, 3, 4, 5}; int n = xCoordinates.length; // 存储距离及其出现次的map Map<Integer, Integer> distanceMap = new HashMap<>(); int result = 0; // 以每个坐标点A为基准点遍历其他所有点B for (int i = 0; i < n; i++) { int xA = xCoordinates[i]; int yA = yCoordinates[i]; // 计算AB的距离并存入map for (int j = i + 1; j < n; j++) { int xB = xCoordinates[j]; int yB = yCoordinates[j]; int distance = getDistance(xA, yA, xB, yB); distanceMap.put(distance, distanceMap.getOrDefault(distance, 0) + 1); } } // 计算等腰三角形的组 for (int count : distanceMap.values()) { result += combination(count, 2); } System.out.println("等腰三角形的组为:" + result); } // 计算两点之间的距离 private static int getDistance(int x1, int y1, int x2, int y2) { return (x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2); } // 计算组合C(n, k) private static int combination(int n, int k) { if (k == 0 || k == n) { return 1; } return combination(n - 1, k - 1) + combination(n - 1, k); } } ``` 这段代码中使用了计算两点距离的函`getDistance()`和计算组合的函`combination()`,均为递归实现。根据输入的坐标数组,我们可以得到等腰三角形的组。 ### 回答3: 要求给定n和坐标,求其中三个坐标能表示一个等腰三角形的组。 首先,要想判断三个坐标是否能表示一个等腰三角形,可以通过计算两个坐标之间的距离是否相等来进行判断。如果存在两个距离相等的边,且剩下的第三个边的对应的距离也相等,则表明这三个坐标能够构成一个等腰三角形。 优化的方法是使用哈希表来存储每个距离对应的出现次。遍历给定的n个坐标,对每两个坐标之间的距离进行计算,并将距离作为键,将出现的次作为值存入哈希表中。接着再次遍历哈希表,对于每个距离出现的次统计,如果次大于等于2,则可以构成一个等腰三角形。对于每个距离出现的次统计,如果次为3,则表示构成两个等腰三角形。最后将满足条件的等腰三角形组进行累加。 以下是用Java代码实现上述优化方法的示例: ```java import java.util.HashMap; import java.util.Map; public class IsoscelesTriangle { public static int findIsoscelesTriangle(int n, int[][] coordinates) { int count = 0; Map<Double, Integer> distances = new HashMap<>(); for (int i = 0; i < n; i++) { for (int j = i + 1; j < n; j++) { double distance = calculateDistance(coordinates[i], coordinates[j]); distances.put(distance, distances.getOrDefault(distance, 0) + 1); } } for (int frequency : distances.values()) { if (frequency >= 2) { count += ((frequency * (frequency - 1)) / 2); } if (frequency == 3) { count++; } } return count; } public static double calculateDistance(int[] point1, int[] point2) { int x1 = point1[0]; int x2 = point2[0]; int y1 = point1[1]; int y2 = point2[1]; return Math.sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1)); } public static void main(String[] args) { int n = 5; int[][] coordinates = {{0, 0}, {1, 1}, {2, 2}, {3, 4}, {0, 5}}; int result = findIsoscelesTriangle(n, coordinates); System.out.println("等腰三角形的组为:" + result); } } ``` 以上代码中,`findIsoscelesTriangle`方法接受n和coordinates作为输入,其中n表示坐标的个,coordinates是一个nx2的二维数组,表示每个坐标的x和y值。`calculateDistance`方法用于计算两个坐标之间的距离。在`main`方法中,我们给出了一个示例的输入,并打印出等腰三角形的组

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

姜鸿阳

谢谢您!感谢您的支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值