Discuss / Java / 交作业啦

交作业啦

Topic source

杨森-ys

#1 Created at ... [Delete] [Delete and Lock User]

package com.itranswarp.learnjava;

import java.util.Scanner;

/**

 * 输入上次考试成绩(int)和本次考试成绩(int)

 * ,然后输出成绩提高的百分比,保留两位小数位(例如,21.75%)

 */

public class Main {

public static void main(String[] args) {

Scanner scanner = new Scanner(System.in); //创建Scanner对象

System.out.print("Input last score:");  //提示输入上次成绩

float last_score = scanner.nextInt();

System.out.print("Input this score:"); //提示出入本次成绩

float this_score = scanner.nextInt();

float ti = (this_score - last_score)/last_score;

System.out.printf("成绩提高了%2f\n",ti);

}

}   //可以添加if语句判断是提高还是下降,但是目前没有讲到就不会写了

别忘了在java里整数除以整数,会忽略掉余数直接返回整数部分,先用(double)将斜杠前面的数(或者说是分子/被除数)强转为浮点型,再去计算,才能得出精确结果,如我的:

package com.itranswarp.learnjava;

import java.util.Scanner;

/**
 * 输入上次考试成绩(int)和本次考试成绩(int),然后输出成绩提高的百分比,保留两位小数位(例如,21.75%)
 */
public class Main {

	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		System.out.print("请输入上次考试成绩:");
		int prev = scanner.nextInt();
		System.out.print("请输入本次考试成绩:");
		int score = scanner.nextInt();
		double percent = (double)(score - prev) / prev * 100;
		System.out.printf("成绩提高了%.2f%%", percent);
	}

}

淮橘or2

#3 Created at ... [Delete] [Delete and Lock User]

应当是double precent= ((double)score-prev)/prev*100;

()优先级最高,(double)(score-prev)实则是计算完int型(score-prev)后将其int型结果转换为double型,如果运算为(double)(score/prev)则可能产生误差


  • 1

Reply