Module: 子程序:过程和函数 - 1


Problem

11/11

改变论点

Theory Click to read/hide

任务
编写一个交换两个变量值的程序。

此任务的特殊性在于我们需要在过程中所做的更改才能为调用程序所知。

让我们尝试编写这样的程序: static void Swap (int a, int b) // 带有这样的过程参数描述, { // 将复制参数的值(x 和 y) 诠释 c; // 变量 a 和 b 是与 x 和 y 无关的自变量 c = 一个;一 = b; b=c; } 静态无效主要() { 诠释 x=1, y=2; 交换(x,y); //变量x和y(参数)的值被复制到参数a和b中,x = 1, y = 2 } 如果你运行这个程序,你可以看到 x 和 y 变量的值没有改变。为了使参数改变参数的值,必须使用按引用传递的数据。 为此,必须在标头中的数据类型名称前写上ref的子程序。 void Swap ( ref int a, ref int b ) // 现在变量 a 和 b 得到变量 x 和 y 在内存中的地址 { 诠释 c; c = 一个;一 = b; b=c; } 静态无效主要() {  诠释 x=1, y=2;  交换(参考 x,参考 y); 应用:如果你通过引用传递参数,那么在调用过程时只有变量的名称(不是数字也不是算术表达式)可以站在这个地方。

您不能调用这样的过程: <前> 交换(x,4); 交换(5+x,y);

Problem

编写一个交换两个变量值的程序。 找出并改正程序中的错误。
 
例子
<头> <正文>
# 输入 输出
1 1
2
2
1
1
using System;      
2
class Program      
3
{       
4
5
    {      
6
        int c;      
7
        c = a; a = b; b = c;      
8
    }      
9


                                                   
10
    static void Main()      
11
    {      
12
        int x = Convert.ToInt32(Console.ReadLine());      
13
        int y = Convert.ToInt32(Console.ReadLine());      
14
15
        Console.WriteLine(x);      
16
        Console.WriteLine(y);      
17
    }      
18
}      
19


                                                   
20


                                                   

     

Program check result

To check the solution of the problem, you need to register or log in!