Module: サブルーチン: プロシージャと関数 - 1


Problem

11/11

引数の変更

Theory Click to read/hide

タスク
2 つの変数の値を交換するプロシージャを作成します。

このタスクの特徴は、プロシージャで行われた変更を呼び出し側プログラムに認識させる必要があることです。

次のような手順を書いてみます。 static void Swap (int a, int b) // プロシージャパラメータのこのような記述では、 { // 引数 (x と y) の値をコピーします int c; // 変数 a と b は x と y に関係のない独立変数です c = a; a = b; b=c; } 静的 void Main() { int 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 のアドレスを取得します { int c; c = a; a = b; b=c; } 静的 void Main() {   int x=1、y=2;  スワップ(ref x, ref y); アプリケーション: 参照によって引数を渡す場合、プロシージャを呼び出すときに、この場所に変数名 (数値や算術式ではありません) のみを置くことができます。

次のようなプロシージャを呼び出すことはできません。 <プレ> スワップ(x, 4); スワップ(5+x, y);

Problem

2 つの変数の値を交換する手順を作成します。 この手順のエラーを見つけて修正します。
 
<頭> <本体>
# 入力 出力
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!