JAVA是面向对象的语言,没有象c中指针这样危险的东西,要编这种简单数学问题你最好用c,Pascal或者VB这样的语言,用面向对象语言解决有点大材小用,c你总会把,用c解决
创新互联建站-专业网站定制、快速模板网站建设、高性价比苏仙网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式苏仙网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖苏仙地区。费用合理售后完善,10年实体公司更值得信赖。
#include stdio.h
void changeXy(int *x,int *y){
int *temp;
temp = x ;
x=y;
y=temp;
}
main(){
int a;
int b;
a=10;
b=8;
printf("输出互换前手中的纸牌:");
printf("左手中的纸牌:%d",a);
printf("右手中的纸牌:%d",b);
printf("\n");
changeXy(a,b);
printf("输出互换后手中的纸牌:");
printf("左手中的纸牌:%d",a);
printf("右手中的纸牌:%d",b);
}
也可以用java解决:
public class change{
private static int a,b;
public static void main(String args[]){
a=10;
b=8;
System.out.println("输出互换前手中的纸牌:");
System.out.println("左手中的纸牌:"+a);
System.out.println("右手中的纸牌:"+b);
System.out.println();
changeXy();
System.out.println("输出互换后手中的纸牌:");
System.out.println("左手中的纸牌:"+a);
System.out.println("右手中的纸牌:"+b);
}
public static void changeXy(){
int temp;
temp = a ;
a=b;
b=temp;
}
}
这个方法,里面都没有用到数组,可见是个值传递,局部可见
private static void swap(int a,int b)
{
int temp;
temp = a;
a = b;
b = temp;
}
这么写就没错误了。
你要是用swap方法,应该多个赋值
把swap的结果,赋值给xy
public
class
change{
Integer
a;
Integer
b;
a=10;
b=8;
public
static
void
main(String
args[]){
System.out.println("输出互换前手中的纸牌:");
System.out.println("左手中的纸牌:"+a);
System.out.println("右手中的纸牌:"+b);
System.out.println();
changeXy(a,b);
/*为什么在调用changeXy()方法后,a和b的值没有发生交换*/
System.out.println("输出互换后手中的纸牌:");
System.out.println("左手中的纸牌:"+a);
System.out.println("右手中的纸牌:"+b);
}
public
static
void
changeXy(Integer
x,integer
y){
Integer
temp=null;
temp=x;
x=y;
y=temp;
}
}
JAVA对两个整数变量的值进行互换(不需要第三方变量)的程序如下:
方法一(加减法):
a = a + b;
b = a - b;
a = a - b;
方法二(异或运算):
a = a ^ b;
b = a ^ b;
a = a ^ b;
代码实现如下:
public class Demo {
public static void main(String [] args){
int m=2,n=3;
//method_1(m, n);
method_2(m, n);
}
/**
* 使用异或^
*明白一个数,如果异或同一个数两次,那么就等于本身
*/
private static void method_3(int m, int n) {
m=m^n;
n=m^n;
m=m^n;
System.out.println("m="+m+"\tn="+n);
}
/**
* 使用自身的数组,加减运算
*/
private static void method_2(int m, int n) {
m=m+n;
n=m-n;
m=m-n;
System.out.println("m="+m+"\tn="+n);
}
}
public static void main(String[] args) {
//定义输入对象s
Scanner s=new Scanner(System.in);
System.out.print("输入第一个数的值:\t");
int number1=s.nextInt();
System.out.print("\n输入第二个数的值:\t");
int number2=s.nextInt();
System.out.println("number1的值:"+number1+"\t\t number2的值:"+number2);//输出交换前内容
//定义中间变量temp进行交换(你小学老师问你:现在有红墨水1瓶、蓝墨水1瓶,要你将红、蓝两种墨水交换瓶子,你是不是要找个空瓶子来处理)
int temp=number1;
number1=number2;
number2=temp;
System.out.println("number1的值:"+number1+"\t\t number2的值:"+number2);//输出交后内容
}
售后响应及时
7×24小时客服热线数据备份
更安全、更高效、更稳定价格公道精准
项目经理精准报价不弄虚作假合作无风险
重合同讲信誉,无效全额退款