前几天碰到两个关于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 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}
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);
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);
}
}
}
看你这输出结果 要求只要一个do while 循环。里面加个if条件语句就可以实现了。
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);
}
}
//[个人意见,供参考]
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]+" ");
}
}
}
再次谢过