这个题也忒难了,大家都是新手啊!!!这个代码写了我3个小时,里面有很多注释的地方是重复重复试验的结果,还有写地方还是懵懵懂懂,不过还是按照楼主的要求实现了功能,我这个代码是裹脚布又长又臭,不过很适合向我这样的新手,就是把这个需求简单话,然后按照自己的意思一条一条写代码..斑竹给分啊!!= =!!- /*
- 需求 :将该数组由小到大进行排列,数组中的素数全部赋值为零,并 按阶梯状输出。
- 数组: 2 5 9 10 48 95 154 31 59 69
- 思路:首先使用遍历数组,然后使用冒泡排序按从小到大的顺序排列,
- 然后对数组各个元素进行判断,如果(这个数)%(这个数-1)==0,那么就不是素数,
- 最后使用for循环输出数字
- 步骤:
- 1,首先定义一个数组,使用for循环遍历数组,冒泡排序使它从小到大排序
- 2,然后找出元素中的素数,赋为0
- 3,然后使用for循环按照阶梯状打印数组
- */
- class Test12{
-
- public static void main(String[] args) {
-
- int [] arr = {2,5,9,10,48,95,154,31,59,69};
- show(arr);//遍历数组的函数
- sort(arr);//排列数组的方式,从小到大
- prime(arr);//将数组中为素数的元素改变为0,打印输出
- ladder(arr);//按照需求将改变后的数组元素呈梯形状打印出来
- }
- //这是一个罗列数组的函数show
- public static void show(int arr[]){
- System.out.println("遍历原数组的各个元素");
- for (int i = 0; i < arr.length; i++) {//i为小脚标,i<数组的长度,i每次执行完自加一次
- System.out.print(arr[i]+" ");//打印元素
- }
- System.out.println();//这个是为了调用函数的时候取到换行的作用,后面的方法中结尾都有一个换行的打印输出
- }
- //冒泡排序从小到大的排序sort
- public static void sort(int arr[]){
- System.out.println("从小到大排序的各个元素");
- for (int i = 0; i < arr.length; i++) {//遍历数组元素
- for (int j = 0; j < arr.length-i-1; j++) {//确定比较的次数,因为每次比较都会确定最小值所以-i-1
- if (arr[j]>arr[j+1]) {//arr[j]>arr[j+1]的时候我们要进行换位
- int temp = arr[j];//用第三方变量temp来实现换位
- arr[j]=arr[j+1];
- arr[j+1]=temp;
- }
- }
- System.out.print(arr[i]+" ");//输出比较后的数组
- }
- System.out.println();//这个是为了调用函数的时候取到换行的作用,后面的方法中结尾都有一个换行的打印输出
- }
- public static void prime(int arr[]){
- System.out.println("将数组中是素数的元素定义为0,并打印出改变后的数组");
- loop://loop是个标记
- for (int i = 0; i < arr.length; i++) {//首先遍历数组元素,就相当于取得每个元素的值
- for (int j = 2;j<arr[i]; j++) {//因为我们是要素数所以我们就让(arr里面的元素)%(这个元素-1的值),这里我们遍历这个元素-1的值.
- if (arr[i]%j==0) {//设置判断语句如果arr[i]这个元素%这个元素的值-1(即j)等于0,我们就继续回到循环
- System.out.print(" " + arr[i]);//打印数组的元素,为了保证让素数变成0之后能打印出所有的元素,即 0 0 9 10 0 48 0 69 95 154这种样式
- continue loop;//if判断flase的时候跳出当前循环
- }
- //System.out.print(" " + arr[i]);
- }
- //System.out.print(" " + arr[i]);
- arr[i]=0;//将这个元素赋值为0
- System.out.print(" " + arr[i]);//打印元素
- //System.out.println();
- }
-
- System.out.println();//我起到了可爱的换行作用,你们可以忽略我
- //ladder(arr);
- }
- public static void ladder(int arr[]){
- //prime(arr);
- System.out.println("将改变后的数组元素按照梯形状打印 ");
- for (int i = 0; i < arr.length; i++) {//控制行数,即长度
- for (int j = 0; j < i; j++) {//控制列数,即高度
- System.out.print(" ");
- }
- System.out.println(arr[i]);
- //System.out.println();
- }
-
- }
-
- }
复制代码 |