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. matplotlib画图实例:pyplot、pylab模块及作图參数

    http://blog.csdn.net/pipisorry/article/details/40005163 Matplotlib.pyplot画图实例 {使用pyplot模块} matplotli ...

  2. Eclipse中设置格式化jsp自动换行

    JSP代码换行:Window->Preferences->Web->JSP Files->Editor->Line width

  3. HTML to PDF pechkin

    1. Goto Nuget 下载 Pechkin 控件 2. 创建需要打印的的PDF controller 和 Action, 这里会调用其他页面的内容进行打印. public ActionResul ...

  4. (三)storm-kafka源代码走读之怎样构建一个KafkaSpout

    上一节介绍了config的相关信息,这一节说下,这些參数各自是什么.在zookeeper中的存放路径是如何的,之前QQ群里有非常多不知道该怎么传入正确的參数来new 一个kafkaSpout,其主要还 ...

  5. ZooKeeper安装与执行

    首先从官网下载ZooKeeper压缩包,然后解压下载得到的ZooKeeper压缩包,发现有"bin,conf,lib"等文件夹. "bin文件夹"中存放有执行脚 ...

  6. <转>Windows平台下Makefile学习笔记(二)

    本文转自:http://blog.csdn.net/clever101/article/details/8286066 上次我们学习了怎么用Makefile编译一个控制台工程.这次我们学习一下如何使用 ...

  7. 工作总结 sql 中过滤条件 中的 (where中的) and

    总结: 在where 后面做过滤的时候 如果  有 字段1 必须满足某种值   字段2 要满足 某种或某值的时候  直接   and 字段1 = ‘a’   and    字段2 = ‘b’ or 字 ...

  8. nginx 使用ngx_cache_purge清除缓存

    location ~ ^/myclear(/.*) { allow 10.0.0.0/8; allow 10.28.100.0/24; allow 127.0.0.1; deny all;   pro ...

  9. PLSQL中显示Cursor、隐示Cursor、动态Ref Cursor差别

    一.显式cursor 显式是相对与隐式cursor而言的,就是有一个明白的声明的cursor.显式游标的声明类似例如以下(具体的语法參加plsql ref doc ): cursor cursor_n ...

  10. PHP利用GD库绘图和生成验证码图片

    首先得确定php.ini设置有没有打开GD扩展功能,測试例如以下 print_r(gd_info()); 假设有打印出内容例如以下,则说明GD功能有打开: Array ( [GD Version] = ...