我的教授给了我们这段代码:
import java.util.Scanner;
import java.io.*;
class Problem1{
public static void main( String[] args ){
int a=5, b=6, c=1;
double x=0.5, y=1.0, z=1.5;
c = fcn1(a, b);
y = fcn2(y, a);
b = fcn3(x, y);
z = fcn3(c, b);
System.out.println("a="+a+", b="+b+", c="+c);
System.out.println("x="+x+", y="+y+", z="+z);
}
static int fcn1(int i, int j){
int k = i-j;
return (++k);
}
static double fcn2(double t, int n){
return (t*n);
}
static int fcn3(double u, double v){
return fcn1((int)(u*v), 2);
}
static double fcn3(int r, int s){
return fcn2(r,s);
}
}
当你运行它时,输出是:
a=5, b=1, c=0
x=0.5, y=5.0, z=0.0
我不明白为什么b = 1所以我做了一个单独的文件来解决b:
class p1 {
public static void main(String [] args){
int a=5, b=6, c=1;
double x=0.5, y=1.0, z=1.5;
b= fcn3(x,y);
System.out.println("b="+b);
}
static int fcn1(int i, int j){
int k = i-j;
return (++k);
}
static int fcn3(double u, double v){
return fcn1((int)(u*v), 2);
}
}
当我运行它时,我得到b = -1 我不明白,帮忙吗?
答案 0 :(得分:1)
在你的教授代码中,y = fcn2(y,a); y变为5,在源代码中,y = 1.0
//Professor Code
//Initial value y= 1.0, but after this line
**y = fcn2(y, a);**
//y = 5;
b = fcn3(x, y); //y = 5;
//您的代码
b = fcn3(x,y);
答案 1 :(得分:0)
在fcn3()中,传递.5和1,然后将它们相乘,即.5,然后将其转换为int,将其降为0,因此fcn1()得到0和2,0-2 = -2,1 + -2 = -1,最后分配给b。