用java做输入长度为10的数组,从小到大输出,并输出其正数、负数、0的个数。

如题所述

import java.util.Arrays;
import java.util.Scanner;

public class ABC {

public static void main(String[] args) {

final int len = 10;

double[] ary = new double[len];

Scanner scanner = new Scanner(System.in);
int odd = 0;//奇数计数器
int even = 0;//偶数计数器
int zero = 0;//0计数器

int i = 0;
while (i < len) {
System.out.print("Please input a digit for array[" + i + "]: ");
ary[i++] = scanner.nextDouble();

if(ary[i-1] == 0){
zero++;
}else if(ary[i-1] % 2== 0){
even++;
}else{
odd++;
}

}

Arrays.sort(ary);

System.out.print("The sorted array in ASC order is: ");
for (double digit : ary) {
System.out.print(digit + " ");
}

System.out.println("\nodd: " + odd);//奇数个数
System.out.println("Even: " + even);//偶数个数
System.out.println("Zerou count: " + zero);//0得个数

}
}

-----------------
Please input a digit for array[0]: 12.4
Please input a digit for array[1]: 33
Please input a digit for array[2]: 25
Please input a digit for array[3]: 37.2
Please input a digit for array[4]: 0
Please input a digit for array[5]: 56
Please input a digit for array[6]: 98
Please input a digit for array[7]: 0
Please input a digit for array[8]: 31
Please input a digit for array[9]: 27.3
The sorted array in ASC order is: 0.0 0.0 12.4 25.0 27.3 31.0 33.0 37.2 56.0 98.0
odd: 6
Even: 2
Zerou count: 2
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-03-06
我写了一个程序给您了可以满足你的要求了哇,多多指教哇呵呵。我的比较简单亲手写的啊采纳我的吧。
import java.util.Scanner;

class A{
static int a=0;static int b=0;static int c=0;
static float[] sh=null;

public static void m(){//冒泡法把数组里面的每一个元素按从小到大的顺序排列。
float t=0;
for(int i=sh.length-1;i>0;--i)
for(int j=0;j<i;++j)
{
if(sh[j]>sh[j+1])
{
t=sh[j];
sh[j]=sh[j+1];
sh[j+1]=t;
}

}

}
public static void main(String args[]){

sh=new float[10];
Scanner s=new Scanner(System.in);
System.out.println("请输入您的十个数字!");
for(int i=0;i<sh.length;i++){
sh[i]=s.nextFloat();
if(sh[i]>0){
a++;
}else if(sh[i]==0){c++;}else{
b++;
}
}

m();
for(int i=0;i<sh.length;i++){
System.out.print(sh[i]+";");}
System.out.print("正数:"+a+";负数:"+c+";0个数:"+c+";");
}
}
第2个回答  2011-03-06
程序如下,应该不需要再解读了吧:
class Test
{
private final int arraySize = 10; //数组长度
private double[] array = new double[arraySize]; //待输入的数组

private void sort(double[] arr) {
java.util.Arrays.sort(arr);
}

private void input() {
java.util.Scanner scanner = new java.util.Scanner(System.in);
for (int i=0; i<arraySize; i++)
{
System.out.println("请输入第" + (i+1) + "个数字:");
array[i] = scanner.nextDouble();
}
}

private void print(double[] arr) {
System.out.print("数组的内容为:");
for (int i=0; i<arr.length; i++)
{
System.out.print(arr[i] + "\t");
}
System.out.println();
}

private void calCount(double[] arr) {
int zeroCount = 0;
int addCount = 0;
int subCount = 0;
for (int i=0; i<arr.length; i++) {
if (arr[i] == 0)
{
zeroCount++;
} else if (arr[i] > 0)
{
addCount++;
} else {
subCount++;
}
}
System.out.println("数组中正数的个数为" + addCount + ",负数的个数为" + subCount + ",0的个数为" + zeroCount + "。");
}

public void doJobs() {
sort(array);
print(array);
calCount(array);
}

public static void main(String[] args)
{
Test t = new Test();
t.input();
t.doJobs();
}
}
相似回答
大家正在搜