1.声明一个char类型的数组,  从键盘录入6个字符
【1】遍历输出
【2】排序
【3】把char数组转化成一个逆序的数组

总结:分析问题时,先问自己,需要用到什么?

对于这题,第一步:先写一个main方法;

第二步:需要声明一个数组;

第三步:需要用到Scanner的控制台输入;(列如:String tmp=sc.next();定义一个string类型的tmp(我把它理解成堆内存的地址),把从控制台输入的sc对象依次导入到堆内存当中)

这三步我把它理解成构建算法的基石

(1)在第一问当中,当看到问题是遍历输出时,需要立马想到这题我需要用到for循环;

因为定义的是String类型的数组,所以需要用到.charAt(0);

                                                                     【1】遍历输出

 import java.util.Scanner;
public class Test13{
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
char[] arr=new char[6]; for(int i=0;i<arr.length;i++){
System.out.println("请输入第"+(i+1)+"个字母");
String tmp=sc.next();
arr[i]=tmp.charAt(0);
}
for(int i=0;i<arr.length;i++){
System.out.print(arr[i]+"\t");
}
}
}

                                                                                               【2】排序

当看到排序时,首先想到冒泡算法,在本题中冒泡算法的使用是:两个for循环的嵌套使用,第一个for循环,控制行;第二个for循环,用于两两比较;

我对他的使用方法的理解是:第一个for循环的范围是(arr.length-1);第二个for循环的范围是(arr.length-1-i);

冒泡排序又是升序,所以需要使用 if 的判断语句,

char temp=0;
for(int i=0;i<arr.length-1;i++){
for(int j=0;j<arr.length-1-i;j++){
if(arr[j]>arr[j+1]){
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
System.out.println();
for(int i=0;i<arr.length;i++){
System.out.print(arr[i]+"\t");
}

                                                                                           【3】把char数组转化成一个逆序的数组

降序输出,

System.out.println();
for(int h=arr.length-1;h>=0;h--){
System.out.print(arr[h]+"\t");
}

2.从键盘输入5句话,将这五句话逆序输出(不需要排序)
运行效果

======================================
大家早上好
明天会更好
北京欢迎你
长城长
太阳出来了

逆序输出
===========================================
太阳出来了
长城长
北京欢迎你
明天会更好
大家早上好

import java.util.Scanner;
public class Test14{
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
String[] arr=new String[5];
for(int i=0;i<arr.length;i++){
System.out.print("请输入第"+(i+1)+"句话");
arr[i]=sc.next();
}
for(int j=arr.length-1;j>=0;j--){
System.out.println(arr[j]);
}
}
}

3.有一组数分别为18,25,7,36,13,2,89,63求出最小的值,并将最小的数与最小的数所在的下标输出

//运行效果:
//====================================
//最低积分为:2
//最低积分所在的下标为:5

总结:第一步,看到问题首先需要想到,需要列出这个数组    int[] arr={18,25,7,36,13,2,89,63};

第二步:   找最小值需要用到if的表达式,首先需要赋予数组的一个数值为最小值,然后用这个最小值与数组的每一个元素一 一比较,(需要你在for循环前,对最小值和最小值的索引进行赋值)

public class Test14{
public static void main(String[] args){
int[] arr={18,25,7,36,13,2,89,63};
int min=arr[0];
int a=0;
for (int i = 0; i < arr.length; i++) {
if(arr[i]<min){
min=arr[i];
a=i;
}
}
System.out.println("最低积分为:"+min);
System.out.println("最低积分所在的下标为:"+a);
}
}

Java 数组算法列题解析的更多相关文章

  1. JAVA经典算法40题及解答

    JAVA经典算法40题 [程序1]   题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1.程序分 ...

  2. JAVA经典算法40题

    1: JAVA经典算法40题 2: [程序1] 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 3 ...

  3. JAVA经典算法40题(原题+分析)之分析

    JAVA经典算法40题(下) [程序1]   有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?   1.程序分析:  ...

  4. JAVA经典算法50题(转)

    转载请注明出处:http://blog.csdn.net/l1028386804/article/details/51097928 JAVA经典算法50题 [程序1]   题目:古典问题:有一对兔子, ...

  5. JAVA经典算法40题面向过程

    JAVA经典算法40题 [程序1]   题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1.程序分 ...

  6. JAVA经典算法40题(原题+分析)之原题

    JAVA经典算法40题(上) [程序1]   题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? [程 ...

  7. java经典算法40题-附带解决代码

    前一段时间工作比较闲,每天没有代码敲的日子有点无聊,于是为了保证自己的编程逻辑力的日常清醒,故百度了一些经典的java算法,然后自己思考编程解决问题,虽然那些东西比较基础了,但是有些题目小编看到了也是 ...

  8. JAVA 数组算法(复制、查找、插入)

    一.复制数组算法 //数组复制算法 public class Test{ public static void main(String[] args){ int[] arrA = {100,800,5 ...

  9. JAVA经典算法40题(供面试所用)

    [程序1]   题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1.程序分析:   兔子的规律为数 ...

随机推荐

  1. .NET分布式事务处理(转)

    出处:http://www.cnblogs.com/youring2/archive/2011/06/12/MSDTC.html 在进行数据持久化的时候,我们会经常用到事务处理.一般情况下,ADO.N ...

  2. 云存储上传控件更新日志-Xproer.cloud2

    官方网站:http://www.ncmem.com/ 产品首页:http://www.ncmem.com/webapp/cloud2/index.asp 在线演示:http://www.ncmem.c ...

  3. element onclick 动态创建元素并绑定onclick事件

    <html> <head> <meta charset="UTF-8"> <title>b</title> <sc ...

  4. CF869C The Intriguing Obsession(组合数学瞎搞,O(n)莫名过)

    — This is not playing but duty as allies of justice, Nii-chan! — Not allies but justice itself, Onii ...

  5. [转载]Java集合系列大全总结

    Java 集合系列目录(Category) 22:06:49 2019-02-27

  6. 怎么用谷歌浏览器查看请求或响应HTTP头?

    要使用谷歌浏览器查看请求或响应HTTP标头,可以采取以下步骤: 在Chrome浏览器,访问一个网址,点击右键,选择检查,打开开发人员工具(或直接按F12). 选择 Network 选项卡. 重新加载页 ...

  7. 不用SQL给打印记录编号

    以QUICKREPORT为例 页面设置如下: 其中ID为编号. 设置为表的ID字段. QUICKREPORT所在的FORM添加一个变量: var FprnT6: TFprnT6; Vxh:intege ...

  8. 获取hyper-v和vmware虚机状态

    在vmware的PowerCLI和微软的scvmm的PowerShell中可以通过Get-VM命令来获取虚拟机的信息.下面我们用代码的方式去实现,代码相关类方法就是对命令的封装. vmware api ...

  9. 创建oracle数据库时,出现ORA-00922: 选项缺失或无效

    sdd53HOME 新建oracle数据库时遇到ORA-00922: 选项缺失或无效的问题,如图: 原因:一般是语句的语法有问题.比如命名不对,关键字写错等等.对于非标准的命名,一般采用双引号来创建. ...

  10. bitnami openedx安装的各种坑及痛苦经历

    那天在华为网站上学习,看见他们的培训系统挺不错的,看到下边写着openedx,百度了一下是个开源软件,挺流行的,在这之前对于openedx没有任何了解,然后开始了一周多的痛苦经历. 首先在opened ...