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. jq:jq开头为什么那么写

    转自:http://holysonll.blog.163.com/blog/static/2141390932013411112823855/ 用jQ的人很多人都是这么开始写脚本的: $(functi ...

  2. mysql 语句要求

    mysql 语句不可以有单引号,要把单引号替换为双引号!

  3. js正则表达式的分组提取

  4. ASP.NET CORE RAZOR :将新字段添加到 Razor 页面

    https://docs.microsoft.com/zh-cn/aspnet/core/tutorials/razor-pages/new-field 在本部分中,将使用 Entity Framew ...

  5. Hive优化策略

    hive优化目标 在有限的资源下,运行效率高. 常见问题 数据倾斜.Map数设置.Reduce数设置等 hive运行 查看运行计划 explain [extended] hql 例子 explain ...

  6. POJ1122_FDNY to the Rescue!(逆向建图+最短路树)

    FDNY to the Rescue! Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 2368   Accepted: 72 ...

  7. IE下object元素遮挡div表单

    目前遇到这样的一个问题: 我用ActiveX插件做了一个C#的播放器,要将这个插件放到web浏览器中,然后可以通过前台页面来控制视频的播放,暂停还有回放,这个时候发现object的onclick事件无 ...

  8. DM8168 自己主动登录root用户

    ①指定连接: <DM8168># ln -s /bin/busybox /sbin/getty ②改动/etc/inittab文件: <DM8168># vi /etc/ini ...

  9. saltstack之nginx部署

    1./srv/salt/nginx目录树 . conf.sls file |--- nginx |--- nginx-1.5.1.tar.gz |--- nginx.conf |--- nginx_l ...

  10. 嵌入式专题: S5PV210 - MPEG4编码

    我想说不台的平台,如tiny210和x210.它们的头文件是有稍微区别的. 我这个是x210下的代码.但都须要注意的是NV12T与NV12的问题,默认要求输入的图片是NV12T,经过调整之后,能够同意 ...