黑马程序员技术交流社区
标题:
编一个程序,输入10个整数,并放在数组中,先降序输出...
[打印本页]
作者:
naonao1027
时间:
2016-6-13 17:16
标题:
编一个程序,输入10个整数,并放在数组中,先降序输出...
编一个程序,输入10个整数,并放在数组中,先降序输出所有的数,再统计并输出其中正数、负数和零的个数
作者:
TCK8888
时间:
2016-6-13 19:25
互相交流学习,楼主要是有更好的写法,或者别的思路,一起交流学习哈
package cn.tck.aaa;
import java.util.Scanner;
/**
* 输入10个整数,并放在数组中,先降序输出所有的数,再统计并输出其中正数、负数和零的个数
*
* @author Administrator
*
*/
public class Demo {
public static void main(String[] args) {
// 初始化数据
int[] arr = new int[10];
// 输入数据
inputData(arr);
System.out.println("未排序之前的数据");
printArr(arr);
// 冒泡排序,降序输出排列
int[] newArr = sortArr(arr);
// 遍历数组
System.out.println("\n降序输出所有的数");
printArr(newArr);
// 统计数据
contNum(newArr);
}
/*
* 统计并输出其中正数、负数和零的个数
*
*/
public static void contNum(int[] newArr) {
int positiveNum = 0;
int minusNegativeNum = 0;
int zeroNum = 0;
for (int i : newArr) {
if (i > 0) {
positiveNum++;
} else if (i < 0) {
minusNegativeNum++;
} else {
zeroNum++;
}
}
System.out.println("正数的个数:" + positiveNum + "负数的个数:" + minusNegativeNum
+ "零的个数:" + zeroNum);
}
/*
* 冒泡排序
*/
public static int[] sortArr(int[] arr) {
for (int i = 0; i < arr.length; i++) {
for (int j = i + 1; j < arr.length; j++) {
if (arr[i] < arr[j]) {
arr[i] = arr[i] ^ arr[j];
arr[j] = arr[j] ^ arr[i];
arr[i] = arr[i] ^ arr[j];
}
}
}
return arr;
}
/*
* 输入数据,保存到数组中
*/
public static void inputData(int[] arr) {
Scanner sc = new Scanner(System.in);
for (int i = 0; i < arr.length; i++) {
arr[i] = sc.nextInt();
}
}
/*
* 遍历数组
*/
public static void printArr(int[] arr) {
for (int i : arr) {
System.out.print(i + "\t");
}
}
}
复制代码
作者:
我是你岁哥❤环
时间:
2016-6-13 19:35
/*
编一个程序:
输入10个整数,并放在数组中,先降序输出所有的数,
再统计并输出其中正数、负数和零的个数
思路:
1.定义一个int型数组,存储循环输入的10个整数
2.调用Arrays.sort(int[] arr)方法对这个数组进行排序
3.循环遍历倒序输出数组中的元素,同时对元素进行判断,统计正数,负数,和零的个数
*/
import java.util.Scanner;
import java.util.Arrays;
class Test_Arrays {
public static void main(String[] args) {
//定义一个int型数组,存储循环输入的10个整数
int[] arr = new int[10];
Scanner sc = new Scanner(System.in);
int z = 0; //统计正数个数
int f = 0; //统计负数个数
int zero = 0; //统计为零个数
//使用循环录入10个整数
for (int i=0; i<arr.length; i++) {
System.out.println("请输入第" + (i+1) + "个整数:");
arr[i] = sc.nextInt();
}
//调用Arrays中的sort()方法,对数组进行排序
Arrays.sort(arr);
//遍历倒序输出数组中的元素
for (int i=arr.length-1; i>=0; i--) {
System.out.print(arr[i] + " ");
//判断各个元素的大小,分别进行统计
if (arr[i] > 0) { //大于0,z++
z++;
} else if (arr[i] == 0) { //等于0,zero++
zero++;
} else { //小于0,f++
f++;
}
}
System.out.println();
System.out.println( "数组中正数的个数: " + z +
" \n负数的个数: " + f +
" \n零的个数: " + zero);
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2