Module: 서브루틴: 절차 및 기능 - 1


Problem

11/11

인수 변경

Theory Click to read/hide

과제
두 변수의 값을 교환하는 프로시저를 작성하세요.

이 작업의 특이점은 호출 프로그램에 알려지려면 프로시저의 변경 사항이 필요하다는 것입니다.

다음과 같이 프로시저를 작성해 봅시다. static void Swap (int a, int b) // 프로시저 매개변수에 대한 설명과 함께, { // 인수 값(x 및 y)을 복사합니다. 정수 c; // 변수 a와 b는 x와 y에 관련되지 않은 독립 변수입니다. 씨 = 에이; a = 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; 씨 = 에이; a = b; b=c; } 정적 무효 메인() {   정수 x=1, y=2;   스왑(ref x, ref 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!