第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();
}
}