public void Hs(out int a, out int b)
{
a = 4;
b = 6;
a = b++;//a=6,b=b+1=7//b先赋值给a,然后b+1
b = ++a;//a=a+1=7,b=7//a先加1,然后赋值给b
}

static void Main(string[] args)

{
int a = 0;
int b = 1;
Program hanshu = new Program();
hanshu.Hs(out a, out b);

Console.WriteLine("a=" + a+" ,b="+b);

Console.ReadLine();

//out相当于return返回值
//拿过来变量名的时候,里面默认为空值

out...可以返回多个值
//传值,只将这个变量的值给拿走,不返还,除非return赋值。
//将a的值传入函数,无论这个值在函数中如何变化,不会影响main中的a

//传址,将这个变量的值拿走运算,完成后还是得返还回来(不用return,用out)
//将a的值传入函数,函数中这个值如何变化,main中的a也会跟着变化
//相当于:函数中的这个值,是main中这个a的快捷方式

题目:求解一元二次方程ax^2+bx+c=0的根的情况及结果

函数部分:

/// <summary>
/// 求解一元二次方程ax^2+bx+c=0的根的情况及结果
/// </summary>
/// <param name="a"></param>
/// <param name="b"></param>
/// <param name="c"></param>
/// <param name="x1"></param>
/// <param name="x2"></param>
public void Fangcheng(double a, double b, double c, out double x1, out double x2)
{
double de = b * b - * a * c;
if (de > )
{
Console.WriteLine("此方程有两个不相同的实数根!");
x1 = (-b + Math.Sqrt(de)) / (a * );
x2 = (-b - Math.Sqrt(de)) / (a * );
}
else//de==0
{
Console.WriteLine("此方程有两个相同的实数根!");
x1 = (-b + Math.Sqrt(de)) / (a * );
x2 = x1;
}
}

程序部分:

 static void Main(string[] args)
{
double x1;
double x2;
Console.WriteLine("求解一元二次方程ax^2+bx+c=0的根的情况及结果:");
Console.Write("请输入a=");
for (; ; )//循环输入,直至有解
{
double a = double.Parse(Console.ReadLine());
if (a == )
{
Console.WriteLine("此方程不是一元二次方程!");
Console.Write("请重新输入a=");
}
else
{
Console.Write("请输入b=");
double b = double.Parse(Console.ReadLine());
Console.Write("请输入c=");
double c = double.Parse(Console.ReadLine()); double de = b * b - * a * c;
if (de < )
{
Console.WriteLine("此方程没有实数根!");
Console.Write("请重新输入a=");
}
else//de>=0
{
Program pp = new Program();
pp.Fangcheng(a, b, c, out x1, out x2); if (x1 == x2)
{
Console.WriteLine("x1=x2=" + x1);
break;
}
else
{
Console.WriteLine("x1=" + x1);
Console.WriteLine("x2=" + x2);
break;
}
}
}
}

题目:擂台比武(猜拳)

函数部分:

 /// <summary>
/// 擂台比武,随机出招,看谁赢
/// </summary>
/// <param name="x"></param>
/// <param name="d"></param>
/// <param name="p"></param>
/// <param name="pc"></param>
public void Caiquan(int x,out string d,out int p,out int pc)
{
p = ; pc = ;
Random ran = new Random();
int y = ran.Next(, );//1,2,3随机一个数
switch (y)
{
case :
Console.WriteLine("看招,王麻子剪刀!");
break;
case :
Console.WriteLine("吕布在此,谁敢放肆!");
break;
case :
Console.WriteLine("我是石头他爸郭涛!");
break;
}
if (x - y == - || x - y == )
{
p++;
pc--;
d = "你赢了!气死我了,你等着,我还会回来的!"; }
else if (x - y == || x - y == -)
{
p--;
pc++;
d = "你输了!哼哼,赶紧跪地求饶吧!"; }
else
{
d= "小样,有两下子,竟然能挡住我的龟波气功!";
}
}

程序部分:

 int p = ; int pc = ; string d; int sum = ; int sum1 = ;
Console.WriteLine("剪子=1,布=2,石头=3");
Console.WriteLine("擂台比武");
int i = ;
for (; ; )
{
Console.Write("ROUND" + i + ",READY?GO:");
int x = int.Parse(Console.ReadLine());
if (x < || x > )
{
Console.WriteLine("你是在逗我开心吗!");
}
else
{
Program s = new Program();
s.Caiquan(x, out d, out p, out pc);
Console.WriteLine(d);
sum += p;
sum1 += pc;
Console.WriteLine(sum + ":" + sum1);
}
i++;
}

题目:输入三个整数,xyz,最终以从大到小的方式输出.利用条件运算符

函数部分

 /// <summary>
/// 输入三个整数,xyz,最终以从小到大的方式输出。利用条件运算符。
/// </summary>
/// <param name="x"></param>
/// <param name="y"></param>
/// <param name="z"></param>
public void Bt(out int x,out int y,out int z)
{
Console.Write("x=");
x = int.Parse(Console.ReadLine());
Console.Write("y=");
y = int.Parse(Console.ReadLine());
Console.Write("z=");
z = int.Parse(Console.ReadLine());
int x1 = (x < y) ? (x) : (y);
int y1 = (x < y) ? (y) : (x);
int x2 = (x1 < z) ? (x1) : (z);
int z1 = (x1 <z) ? (z) : (x1);
int y2 = (y1 < z1) ? (y1) : (z1);
int z2 = (y1 < z1) ? (z1) : (y1);
x = x2;
y = y2;
z = z2;
}

程序部分

int x, y, z;
Program n = new Program();
n.Bt(out x,out y,out z);
Console.WriteLine(x+"<"+y+"<"+z);

题目: 输入三个整数,xyz,最终以从大到小的方式输出.利用中间变量

函数部分

/// <summary>
/// 输入三个整数,xyz,最终以从大到小的方式输出.利用中间变量
/// </summary>
/// <param name="x"></param>
/// <param name="y"></param>
/// <param name="z"></param>
/// <param name="x1"></param>
/// <param name="y1"></param>
/// <param name="z1"></param>
public void PaiXu( int x, int y, int z,out int x1,out int y1,out int z1)
{
int a;
if (x < y)
{
a = x;
x = y;
y = a; //x,y调换//x>y
}
if (x < z)
{
a = x;
x = z;
z = a;//x,z调换,此时x最大
}
if (y < z)
{
a = y;
y = z;
z = a;//y>z
}
x1 = x;
y1 = y;
z1 = z;
}

程序部分

  int x1, y1, z1;
Console.Write("请输入第一个整数x=");
int x = int.Parse(Console.ReadLine());
Console.Write("请输入第二个整数y=");
int y = int.Parse(Console.ReadLine());
Console.Write("请输入第三个整数z=");
int z = int.Parse(Console.ReadLine());
Program t = new Program();
t.PaiXu( x, y, z,out x1,out y1,out z1);
Console.WriteLine(z1 + " " + y1 + " " + x1);//从小到大排列
 

3.15课·········out传值(传址)的更多相关文章

  1. JS 传值 传址

    在JS中,有两种不同的方式可以操作数据的值,这两种技术分别叫做 传值 和 传址. 传值:在赋值过程中,首先对值进行了一份拷贝,而后将这份拷贝存储到一个变量.对象属性或数组元素中.拷贝的值和原始的值是完 ...

  2. Python 函数参数引用(传值/传址)/copy/deepcopy

    精简版: 传值:被调函数局部变量改变不会影响主调函数局部变量 传址:被调函数局部变量改变会影响主调函数局部变量 Python参数传递方式:传递对象引用(传值和传址的混合方式),如果是数字,字符串,元组 ...

  3. C#-函数的传值与传址

    传值就是将实参的值传到所调用的函数里面,实参的值并没有发生变化,默认传值的有int型,浮点型,bool型,char字符型,结构体等等. 传址就是将地址传到所调用的函数里面操作,实参的值也会跟着变化,传 ...

  4. C# 函数的传值与传址(转)

    http://www.cnblogs.com/mdnx/archive/2012/09/04/2671060.html using System; using System.Collections.G ...

  5. Java传值和传址

    调用函数时,传的参数过去可能是传值,也可能是传址.如果是传值,函数内部的操作对参数的值没有影响:如果是传址,函数内部的操作是对参数指向的内存进行操作,会影响参数的值. Java到底是传值还是传址?用下 ...

  6. js 的复制和引用 (传值和传址)

    复制(传值-实参):  基本类型赋值.函数参数 引用(传址-形参):  对象.数组.函数

  7. C语言的传值与传址调用

    传值调用并不能改变两个变量的值,而传址能. 为什么,因为,传值调用,仅仅是在函数内,调换参数的值. 而地址所指向的值,改变的不仅仅是函数内,函数外也改变. 请看代码: 这里还要注意:通常我们不会返回局 ...

  8. javascript的变量,传值和传址,参数之间关系

    先把收获晾一下: 1.javascrip变量包含两种类型的值,一种为引用类型的值,一种是基本类型的值.引用类型包括:Array,Object,Function(可以这么理解,非基本类型的都是引用类型) ...

  9. JavaScript 函数参数是传值(byVal)还是传址(byRef)?

    对于“JavaScript 函数参数是传值(byVal)还是传址(byRef)”这个问题,普遍存在一个误区:number,string等“简单类型”是传值,Number, String, Object ...

随机推荐

  1. Python的Django框架中的Cookie相关处理

    Python的Django框架中的Cookie相关处理 浏览器的开发人员在非常早的时候就已经意识到. HTTP's 的无状态会对Web开发人员带来非常大的问题,于是(cookies)应运而生. coo ...

  2. 关于CDN对动态网站加速的一些看法

    CDN的全称是Content Delivery Network,即内容分发网络.其目的是通过在现有的Internet中增加一层新的网络架构,将网站的内容发布到最接近用户的网络"边缘" ...

  3. Resharper快捷键及用法

    建议你使用 Reshaper 的快捷键,不要担心 Reshaper 会把你原来的快捷键设置给覆盖了,因为如果某个快捷键和 VS 是冲突的,Reshaper会让你自己选择需要使用 VS 还是 Resha ...

  4. wxWidgets之wxGrid控件

    1. 介绍 wxGrid控件时wxWidgets界面库中内置的网格控件. 通经常使用来显示表格数据.该控件拥有强大的功能.开发人员可依据自己的需求对其进行定制. 2. 经常使用API      构造函 ...

  5. Ubuntu16.04下搜狗输入法、Sublime Text 3的安装

    Ubuntu16.04下搜狗输入法.Sublime Text 3的安装 一.搜狗输入法 1. 安装中文语言 默认在Ubuntu16.04下是没有中文的,需要安装中文,在System Settings- ...

  6. Keepalived + MySQLfailover + GTIDs 高可用

    架构图     10.1.1.207    mysql master + keepalived     10.1.1.206    mysql slave ( backup master ) + ke ...

  7. 解决UISlider滑块不灵敏

    由于UI给的thumbImage图片过小,默认UISlider开始拖动的手势范围只有thumbImage的大小之内. 为了解决这个问题需要创建一个子类继承于UISlider.重写其中的方法: - (C ...

  8. mac Xvim 语法高亮

    步骤1: cp /usr/share/vim/vimrc ~/.vimrc 先复制一份vim配置模板到个人目录下 注:redhat 改成 cp /etc/vimrc ~/.vimrc 步骤2: vi ...

  9. maven 依赖文件 pom.xml 编译 mvn compile 运行 不用mvn exec:java -Dexec.mainClass="hello.HelloWorld" 打成jar包 mvn package mvn install http://blog.csdn.net/yaya1943/article/details/48464371

    使用maven编译Java项目 http://blog.csdn.net/yaya1943/article/details/48464371  使用"mvn clean"命令清除编 ...

  10. xmlUtil 解析 创建

    http://yangzi09150915.blog.163.com/blog/static/32953487201072911410398/ package com.aibi.cmdc.webSer ...