黑马程序员技术交流社区
标题:
遇到一个面试题求高人解答
[打印本页]
作者:
奶茶妹ltt
时间:
2014-6-30 22:25
标题:
遇到一个面试题求高人解答
1. 编一个程序,输入10个整数,并放在数组中,先降序输出所有的数,再统计并输出其中正数、负数和零的个数
作者:
来自沙沙的我
时间:
2014-6-30 22:42
这个不难吧,先进行排序然后通过if语句比较。
作者:
on-on
时间:
2014-7-1 10:33
这个不难,要自己写出来,定义三个标志位flag1,flag2,flag3,用于标记正数负数和零的个数,一个排序算法,排序过程中加判断
{
if(array[i]>0)
flag1++;
if(array[i]<0)
falg2++
if(array[i]==0)
flag3++
}
作者:
奋斗2014
时间:
2014-7-1 11:06
我觉得这个可用io流的方式做,获取键盘输入的数据,然后排序做判断。
作者:
燿陚√揚葳
时间:
2014-7-1 13:35
public class Demo {
private String[] arr;
public void getInput(){
System.out.println("请输入一个数字串,并以逗号隔开:");
Scanner scanner = new Scanner(System.in);
String input = scanner.nextLine();
arr = input.split(",");
sort();
method();
}
//为数组冒泡排序
public void sort(){
for(int x=0;x<arr.length-1;x++){
for(int y=0;y<arr.length-x-1;y++){//-x:让每一次比较的元素减少 -1:避免角标越界
//要比较大小所以要先转换成Integer类型
if(Integer.valueOf(arr[y])<Integer.valueOf(arr[y+1])){
swap(y,y+1);//满足条件的换位置
}
}
}
printmethod();
}
//打印数组
public void printmethod(){
System.out.print("{");
for (int x = 0;x<arr.length;x++){
if(x!=arr.length-1)
System.out.print(arr[x]+",");
else
System.out.println(arr[x]+"}");
}
}
//统计所输入数字的正数,负数及零的个数
public void method(){
int count=0;
int count1=0;
int count2=0;
for (int x = 0;x<arr.length;x++){
if(Integer.valueOf(arr[x])<0)
count++;
else if(Integer.valueOf(arr[x])>0){
count1++;
}
else
count2++;
}
System.out.println("正数个数为:"+count1);
System.out.println("负数个数为:"+count);
System.out.println("零的个数为:"+count2);
}
//为数组换位置
public void swap(int a,int b){
String temp;
temp = arr[a];
arr[a] = arr[b];
arr[b] = temp;
}
public static void main(String[] args)throws Exception {
Demo d = new Demo();
d.getInput();
}
}
复制代码
你看看有没有什么问题?
作者:
dispensable
时间:
2014-7-1 14:07
楼上写很好……最好是在接收输入的时候判断输入的是否是整数……不然会抛数字转换异常
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2