写程序菜鸟问两个java的有关问题,忍不住求解惑~ 多谢
写程序初学者问两个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问题,研究多时一直无解,忍不住特来资讯论坛的大侠。
不是很熟悉语法最好能给出代码,多谢@
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]+" "); } } }