注册 登录
编程论坛 JAVA论坛

JAVA怎么实现多个int相加,多个float相加

sally02468 发布于 2015-10-19 16:40, 1429 次点击
这是运行后的结果,为什么输出的不是和呢,哪里错了?求问大神

3.0
5
1 1 1 1 1
11111
3
1.1 1.1 1.1
1.11.11.1


import java.util.Scanner;
public class SumTest {

    public static void main(String[] args) {
        Scanner reader=new Scanner(System.in);
        Add add=new Add();
System.out.println(add.add(1.5f,1.5f));
int n=reader.nextInt();
for(int i=0;i<n;i++){
int a=reader.nextInt();
System.out.print(add.add(a));
}
int m=reader.nextInt();
for(int j=0;j<m;j++){
float b=reader.nextFloat();
System.out.print(add.add(b));
}
    }
}
    class Add{
        float add(float x,float y){
        
    return x+y;
        }
     int add(int ...s){
        int x=0;
        for(int i=0;i<s.length;i++)
            x+=s[i];
            return x;
        
}
     float add(float ...s){
    float x=0;
    for(int i=0;i<s.length;i++)
        x+=s[i];
        return x;
     }
}
8 回复
#2
林月儿2015-10-19 18:37
程序代码:
import java.util.Scanner;
public class SumTest {

    public static void main(String[] args) {
        Scanner reader=new Scanner(System.in);
        Add add=new Add();
        System.out.println(add.add(1.5f,1.5f));
        System.out.println("请输入整型数据个数");
        int n=reader.nextInt();
        for(int i=0;i<n;i++){
            System.out.printf("请输入第%d个元素",(i+1));
            Add.sum_int+=reader.nextInt();
        }
        System.out.println(Add.sum_int);
        System.out.println("请输入浮点型数据个数");
        int m=reader.nextInt();
        for(int j=0;j<m;j++){
            System.out.printf("请输入第%d个元素",(j+1));
            Add.sum_float+=reader.nextFloat();
        }
        System.out.print(Add.sum_float);
        reader.close();
    }
}
class Add{
    static int sum_int;
    static float sum_float;
    float add(float x,float y){   
        return x+y;
    }
     void add(int s){
        sum_int+=s;
     }
     void add(float s){
         sum_float+=s;
     }
}
#3
Spy0012015-10-19 22:09
在JAVA中,基本类型(除了boolean外)可以自动转换的,转换形式为:byte,short,char -- int --long--float--double这就是自动转换的顺序了,其中byte,short,char在运算时是自动转换为int型的,而int与long运算时自动转换为long型。从上可知,float与double运算时是自动转换为double再进行计算的,int与float运算时先转换为float再运算。也就是说,表述范围小的可以自动转换为表述范围大的,(表述范围不是指类型的大小)其次,如果你要得到某一类型的数值时,也可以通过强制转换来实现
#4
sally024682015-10-20 15:44
回复 2楼 林月儿
谢谢啦~
#5
w1702015-10-21 20:25
级别低的类型转变为级别高的类型时编译器自动完成转换,反过来则需要进行强制类型转换。
低到高
int x=50;
float y;
y=x;
结果y=50.0
高到低
int x=(int)34.89;
结果x=34
#6
SkyApple0012015-10-22 02:49
add(int ...s)是什么语法?
#7
sally024682015-10-24 20:15
回复 7楼 SkyApple001
这是不定长参数,在调用某个方法时,若是方法的参数是同一数据类型,但是参数个数不能确定的时候可用这个语句处理。
形式:
返回值  方法名(参数数据类型...参数名)
#8
刘俊杰2015-11-08 17:45
回复 2楼 林月儿
     void add(int s){
        sum_int+=s;
     }
     void add(float s){
         sum_float+=s;
     }

应该没什么作用吧
1