for(int i=1;i
double res = sum / (nums-2);
out.println(String.format("%.2f",res));
7-5 验证回文串
编写程序,验证一个字符串是否为回文串:是否从前读它和从后读它都是一样的。例如,mom,dad是回文串。该程序接收用户输入的字符串,判断是否为回文串,然后将判断的结果输出。
输入格式:
输入在一行中给出一个字符串。
输出格式:
如果输入的字符串为回文串,则输出yes;否则输出no。
输入样例:
在这里给出一组输入。例如:
mom
输出样例:
在这里给出相应的输出。例如:
yes
import java.util.Scanner;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.StreamTokenizer;
static PrintWriter out = new PrintWriter(System.out);
static StreamTokenizer in =new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
static boolean judge(String s){
for(int i = 0; i < len/2; i++){
if(s.charAt(i) != s.charAt(len-i-1)){
public static void main(String [] args) throws IOException{
7-6 jmu-Java-01入门-格式化输入输出与字符串
###本题主要考察
- 使用
Scanner
处理输入 - 使用
System.out.printf
进行格式化输出 String
常用方法与字符串常用操作
main
###输入说明:
- 输入
double
,然后输入3个浮点数。输出:从左到右依次输出3个double(均保留2位小数输出,宽度为5),格式依次为:右侧填充空格,左侧填充空格,直接输出 - 输入
int
,然后输入3个整数(以1个或多个空格分隔)。输出:将3个整数相加后输出。 - 输入
str
,然后输入3个字符串。输出:去除空格,然后倒序输出3个字符。 - 输入
line
,然后输入一行字符串。输出:转换成大写后输出。 - 如果输入不是上面几个关键词,输出:输出other。
###输出说明
choice=你输入选项
该选项对应的输出内容
###提示
- 可使用
line.split("\\s+");
将以1个或多个空格分隔开的字符串分割并放入字符串数组。 Scanner.nextLine
与Scanner的其他next函数混用有可能出错。
输入样例:
输出样例:
这里要用到scanner.nextLine(),值得学习和注意
import java.util.Scanner;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.StreamTokenizer;
static PrintWriter out = new PrintWriter(System.out);
static StreamTokenizer in = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
static void solve() throws IOException{
Scanner cin = new Scanner(System.in);
out.println("choice=double");
else if(op.equals("int")){
out.println("choice=int");
else if(op.equals("str")){
out.println("choice=str");
in.ordinaryChars('0','9');
else if(op.equals("line")){
out.println("choice=line");
String s = cin.nextLine();
out.printf("choice=%s%n",op);
public static void main(String [] args) throws IOException{
7-7 结伴同行去秋游
可以去秋游啦!同学们别提多高兴了!老师说,单独行动有点危险,那么我们还是结伴同行吧。结伴的规则是这样的:排在最前的一个人和排在最后的那个人结成同伴,排在第2个的与排在倒数第2个的结成同伴......依次类推,2个一组成同伴。好,请马上排出来吧!老师语音一落,同学们“唰唰唰”很快结伴好了,准备出发喽!
输入格式:
第一行是一个整数n,表明n个同学。(2<=n<=50,n为偶数) 。
第二行n个整数表明n个同学的学号,学号之间有一个空格。
输出格式:
共n/2行,每行二个整数,表明结伴同学的学号,两个学号之间有一个空格。
输入样例:
输出样例:
import java.util.Scanner;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.StreamTokenizer;
static PrintWriter out = new PrintWriter(System.out);
static StreamTokenizer in = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
static Scanner cin = new Scanner(System.in);
static void solve() throws IOException{
for(int i = 0 ; i < n ; i++ ){
out.printf("%d %d%n",a[i],a[n-i-1]);
public static void main(String [] args) throws IOException{
7-8 摘苹果
陶陶家的院子里有一棵苹果树,每到秋天树上就会结出很多苹果。苹果成熟的时候,陶陶就会跑去摘苹果。陶陶有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。
现在已知每个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目。假设她碰到苹果,苹果就会掉下来。
输入格式:
包括三行数据。
第一行是一个整数n,表示有n个苹果。苹果至少有一个,不超过1000个。
第二行包含n个100到200之间(包括100和200)的整数(以厘米为单位)分别表示这n个苹果到地面的高度,两个相邻的整数之间用一个空格隔开。
第三行是一个100到120之间(包含100和120)的整数(以厘米为单位),表示陶陶把手伸直的时候能够达到的最大高度。
输出格式:
一个整数,表示陶陶能够摘到的苹果的数目。
输入样例:
100 200 150 140 129 134 167 198 200 111
输出样例:
5
import java.util.Scanner;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.StreamTokenizer;
static PrintWriter out = new PrintWriter(System.out);
static StreamTokenizer in = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
static Scanner cin = new Scanner(System.in);
static void solve() throws IOException{
for(int i = 0 ; i < n ; i++ ){
for(int i=0;i
public static void main(String [] args) throws IOException{
7-9 数组元素的删除
完成数组元素的移动功能:假设数组有n个元素,输入一个数x,把数组的第x个位置的元素删除了,后面的元素依次前进一个位置。
重复若干次这样的删除,得到最后的结果。
输入格式:
第一行包括一个整数n(1<=n<=100),表示数组元素的个数。
第二行输入n个数组元素,均为整数,用空格隔开。
第三行输入一个数k(1<=k<=100),表示要进行k次删除。
接下来k行,每行一个数x,表示要删除第x个元素。
输出格式:
输出经过k次删除后的数组,每两个元素之间用空格隔开。
输入样例:
输出样例:
1 4 5 7 8 10
import java.util.Scanner;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.StreamTokenizer;
static PrintWriter out = new PrintWriter(System.out);
static StreamTokenizer in = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
static Scanner cin = new Scanner(System.in);
static int[] a = new int[9999];
static void solve() throws IOException{
for(int i = 0 ; i < len ; i++ ){
for(int i=0;i
public static void main(String [] args) throws IOException{
7-10 jmu-Java-02基本语法-03-身份证排序
- 输入n,然后连续输入n个身份证号。
- 然后根据输入的是sort1还是sort2,执行不同的功能。输入的不是sort1或sort2,则输出
exit
并退出。
输入sort1,将每个身份证的年月日抽取出来,按年-月-日格式组装,然后对组装后的年-月-日升序输出。
输入sort2,将所有身份证按照里面的年月日升序输出。
注意:处理输入的时候,全部使用Scanner
的nextLine()
方法,以免出错。
输入样例:
输出样例:
这里采用手动排序,其实也可以实例化Comparator实现自定义类的自定义排序
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.StreamTokenizer;
public struct(int id , String num){
public void setId(int id){
public void setNum(String Num){
static PrintWriter out = new PrintWriter(System.out);
static StreamTokenizer in = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
static Scanner cin = new Scanner(System.in);
static String[] a = new String[9999];
static struct[] sd = new struct[9999];
for(int i=0;i
String y = a[i].substring(6,14);
for(int i=0;i
if(sd[j].getNum().compareTo(sd[j+1].getNum()) >= 1){
for(int i=0;i
out.printf("%s-%s-%s%n",a[id].substring(6,10),a[id].substring(10,12),a[id].substring(12,14));
for(int i=0;i
static void solve() throws IOException{
for(int i = 0 ; i < len ; i++ ){
String op = cin.nextLine();
else if(op.equals("sort2")){
public static void main(String [] args) throws IOException{
7-11 jmu-java-m02-使用二维数组存储多元线性方程组
题面
可以使用二维数组存储来存储线性方程组的系数与常数。比如,对于如下3元线性方程组
3x+y+z=1
6x+2y+z=-1
-2x+2y+z=7
可以使用二位数组存储
2 1 1 1
6 2 1 -1
-2 2 1 7
编写一个程序可以存储n元线性方程组
输入格式:
整数n,代表n元
n行、每行n+1列线性方程组的系数与常数。系数与常数为double型。
输出格式:
格式化输出二维数组。注意:使用Arrays.deepToString进行格式化输出。
依次输出n行线性方程组的系数与常数。系数以 , 分隔,系数与常数之间以 = 分隔,= 之间有两个空格。
输入样例:
输出样例:
[[2.0, 1.0, 1.0, 1.0], [6.0, 2.0, 1.0, -1.0], [-2.0, 2.0, 1.0, 7.0]]
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.StreamTokenizer;
static PrintWriter out = new PrintWriter(System.out);
static StreamTokenizer in = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
static Scanner cin = new Scanner(System.in);
static void solve() throws IOException{
arr = new double[len][len+1];
for(int i = 0 ; i < len ; i++ ){
arr[i][j]=cin.nextDouble();
String res = Arrays.deepToString(arr);
for (int i = 0; i < len; i++) {
StringBuilder str = new StringBuilder();
for (int j = 0; j < len; j++) {
str.append(arr[i][j]).append(", ");
str.delete(str.length() - 2, str.length());
str.append(" = ").append(arr[i][len]);
public static void main(String [] args) throws IOException{
7-12 sdut-array2-1-矩阵转置(I)
从键盘输入矩阵的行数N,和一个N×N阶的矩阵,编程输出它的转置矩阵。
输入格式:
然后是N行N列组成矩阵的数据。每行内数据之间用空格隔开。
输出格式:
矩阵格式输出,每行内非尾部的每个数据后跟一个空格,行尾数据后不加空格,为换行符。
输入样例:
输出样例:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.StreamTokenizer;
static PrintWriter out = new PrintWriter(System.out);
static StreamTokenizer in = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
static Scanner cin = new Scanner(System.in);
static void solve() throws IOException{
arr = new int[len][len+1];
-