A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

编一个程序,输入10个整数,并放在数组中,先降序输出所有的数,再统计并输出其中正数、负数和零的个数

2 个回复

倒序浏览
互相交流学习,楼主要是有更好的写法,或者别的思路,一起交流学习哈
  1. package cn.tck.aaa;

  2. import java.util.Scanner;

  3. /**
  4. * 输入10个整数,并放在数组中,先降序输出所有的数,再统计并输出其中正数、负数和零的个数
  5. *
  6. * @author Administrator
  7. *
  8. */
  9. public class Demo {

  10.         public static void main(String[] args) {
  11.                
  12.                 // 初始化数据
  13.                 int[] arr = new int[10];       
  14.                
  15.                 // 输入数据
  16.                 inputData(arr);                       
  17.                
  18.                
  19.                 System.out.println("未排序之前的数据");
  20.                 printArr(arr);                
  21.                
  22.                 // 冒泡排序,降序输出排列       
  23.                 int[] newArr = sortArr(arr);       
  24.                
  25.                 // 遍历数组
  26.                 System.out.println("\n降序输出所有的数");
  27.                 printArr(newArr);
  28.                
  29.                 // 统计数据
  30.                 contNum(newArr);                                               
  31.         }

  32.         /*
  33.          * 统计并输出其中正数、负数和零的个数
  34.          *
  35.          */
  36.         public static void contNum(int[] newArr) {
  37.                 int positiveNum = 0;
  38.                 int minusNegativeNum = 0;
  39.                 int zeroNum = 0;
  40.                 for (int i : newArr) {
  41.                         if (i > 0) {
  42.                                 positiveNum++;
  43.                         } else if (i < 0) {
  44.                                 minusNegativeNum++;
  45.                         } else {
  46.                                 zeroNum++;
  47.                         }
  48.                 }
  49.                 System.out.println("正数的个数:" + positiveNum + "负数的个数:" + minusNegativeNum
  50.                                 + "零的个数:" + zeroNum);
  51.         }

  52.         /*
  53.          * 冒泡排序
  54.          */
  55.         public static int[] sortArr(int[] arr) {
  56.                 for (int i = 0; i < arr.length; i++) {
  57.                         for (int j = i + 1; j < arr.length; j++) {
  58.                                 if (arr[i] < arr[j]) {
  59.                                         arr[i] = arr[i] ^ arr[j];
  60.                                         arr[j] = arr[j] ^ arr[i];
  61.                                         arr[i] = arr[i] ^ arr[j];
  62.                                 }
  63.                         }
  64.                 }
  65.                 return arr;
  66.         }

  67.         /*
  68.          * 输入数据,保存到数组中
  69.          */
  70.         public static void inputData(int[] arr) {
  71.                 Scanner sc = new Scanner(System.in);
  72.                 for (int i = 0; i < arr.length; i++) {
  73.                         arr[i] = sc.nextInt();
  74.                 }
  75.         }

  76.         /*
  77.          * 遍历数组
  78.          */
  79.         public static void printArr(int[] arr) {
  80.                 for (int i : arr) {
  81.                         System.out.print(i + "\t");
  82.                 }
  83.         }

  84. }
复制代码
回复 使用道具 举报

  1. /*
  2.         编一个程序:
  3.         输入10个整数,并放在数组中,先降序输出所有的数,
  4.         再统计并输出其中正数、负数和零的个数

  5.         思路:
  6.                 1.定义一个int型数组,存储循环输入的10个整数
  7.                 2.调用Arrays.sort(int[] arr)方法对这个数组进行排序
  8.                 3.循环遍历倒序输出数组中的元素,同时对元素进行判断,统计正数,负数,和零的个数
  9. */

  10. import java.util.Scanner;
  11. import java.util.Arrays;

  12. class Test_Arrays {

  13.         public static void main(String[] args) {

  14.                 //定义一个int型数组,存储循环输入的10个整数
  15.                 int[] arr = new int[10];

  16.                 Scanner sc = new Scanner(System.in);
  17.                
  18.                 int z = 0;                //统计正数个数
  19.                 int f = 0;                //统计负数个数
  20.                 int zero = 0;        //统计为零个数

  21.                 //使用循环录入10个整数
  22.                 for (int i=0; i<arr.length; i++) {
  23.                         System.out.println("请输入第" + (i+1) + "个整数:");
  24.                         arr[i] = sc.nextInt();
  25.                 }

  26.                 //调用Arrays中的sort()方法,对数组进行排序
  27.                 Arrays.sort(arr);

  28.                 //遍历倒序输出数组中的元素
  29.                 for (int i=arr.length-1; i>=0; i--) {
  30.                         System.out.print(arr[i] + " ");
  31.                         //判断各个元素的大小,分别进行统计
  32.                         if (arr[i] > 0) {        //大于0,z++
  33.                                 z++;
  34.                         } else if (arr[i] == 0) {        //等于0,zero++
  35.                                 zero++;
  36.                         } else {                        //小于0,f++
  37.                                 f++;
  38.                         }
  39.                 }

  40.                 System.out.println();

  41.                 System.out.println(        "数组中正数的个数: " + z +
  42.                                                         "    \n负数的个数: " + f +
  43.                                                         "    \n零的个数: " + zero);
  44.         }
  45. }
复制代码


回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马