当前位置: 代码迷 >> J2SE >> 写程序菜鸟问两个java的有关问题,忍不住求解惑~ 多谢
  详细解决方案

写程序菜鸟问两个java的有关问题,忍不住求解惑~ 多谢

热度:64   发布时间:2016-04-24 02:09:35.0
写程序初学者问两个java的问题,忍不住求解惑~ 谢谢
前几天碰到两个关于java问题,研究多时一直无解,忍不住特来资讯论坛的大侠。

不是很熟悉语法最好能给出代码,多谢@

1,有一个问题是怎样通过从键盘输入一个一组数据末尾以0结束然后求出这组数中大于0的数字的个数和这组数中的和。
  比如:输入1 2 3 -5 4 -6 0然后输出 4和10

(按照数组的用法要建立一个数组必须要先规定数组中元素的个数,我就疑惑了。)

2, 编写一个method,这个method要包含三个参数:一个数组(包含类型是double的数字)一个int(i),一个 double(x) ,使用void类型。然后要将这个数组中i的位置和i以后的数字全部都向后移动一位,然后把x放入数组中i的位置。

例如: 如果数组是:{1.0, 2.0, 3.0},i 是1 ,x是99.0 这个数组将会变成{1.0, 99.0, 2.0}

------解决方案--------------------
1、
Java code
    List<Integer> list = new ArrayList<Integer>();    Scanner sc = new Scanner(System.in);    boolean flag = true;    while(flag){        Integer temp = sc.nextInt();        if(temp == 0){        flag = false;        }        list.add(temp);    }    int gtZero = 0;    int sum = 0;    for(Integer i : list){        if(i > 0){        gtZero ++;        sum += i;        }    }    System.out.println("大于零的个数:" + gtZero);    System.out.println("总和:" + sum);
------解决方案--------------------
2、
Java code
 public static void change(double args[], int i, double param){    if(args != null){        for(int index1=0; index1<args.length; index1++){        if(index1 == i){            for(int index2=args.length - 1; index2>=index1; index2--){            args[index2] = args[index2-1];             }            args[index1] = param;        }        }        for(double temp : args){        System.out.println(temp);        }    }    }
------解决方案--------------------
Java code
import java.util.Scanner;public class Test6 {    public static void main(String[] args){        int count = 0;        int sum = 0;        Scanner sc = new Scanner(System.in);        int tmp = sc.nextInt();        while(tmp != 0){            if(tmp>0){                count++;                sum += tmp;            }            tmp = sc.nextInt();        }        System.out.println(count+"  "+sum);    }}
------解决方案--------------------
Java code
//[个人意见,供参考]class Main{    public static void main(String [] args)    {                //编译运行时的格式:javac Main.java        //                      java Main 1 2 3 -4 -5 6 0                //1.使用args接收输入数据,        int count=0;        int value=0;        int len=0;        for(int i=0;i<args.length-1;i++)        {                            if((len=args[i].toCharArray()[0])>'0')                {                    count++;                    value=value+(len-48);                    System.out.println((len-48));                }        }        System.out.println("个数为:"+count+",和为:"+value+"\r\n");                //2.需要新建一数组,且比原数组length大1        double [] d1 ={1.0,2.0,3.0,4.0,5.0};        int i=4;        double d2=8.0;        method(d1,i,d2);    }        public static void method(double[] d1,int i,double d2)    {            double [] dou=new double[d1.length+1];            for(int j=0;j<dou.length;j++)            {                    if(j<i)                        dou[j]=d1[j];                    else if(j==i)                        dou[j]=d2;                    else                        dou[j]=d1[j-1];            }            for(int j=0;j<d1.length;j++)            {                System.out.print(d1[j]+" ");            }            System.out.println();            for(int j=0;j<dou.length;j++)            {                System.out.print(dou[j]+" ");            }    }}
  相关解决方案