1579, 7/79 회원가입  로그인  
   lackhole
   Penguins.png (18.4 KB), Download : 7     [오른쪽 버튼 눌러 다운 받기]
   [펌]C Language (swap)

http://www.hackerschool.org/HS_Boards/zboard.php?id=Free_Lectures&no=8159 [복사]



c언어 swap예제

a 에다 1을 입력하고 b에다 2를 입력하고 a와b의 값을 바꾸는 예제를 만들라고 한다면 c언어를 초반으로 접하시는 분들은 아래와 같이 작성할수도 있다

#include <Stdio.h>

int main(void)
{
        int a , b;
        
        printf("a :");
        scanf("%d",&a); //1로 입력한경우
        
        printf("b :");
        scanf("%d",&b); //2로 입력한경우
        
        b = a;  
        a = b;  
        
        printf("a : %d\nb : %d\n",a , b);
        
        return 0;
}
c언어를 초반으로 접하신 분은 이렇게 작성할수도 있습니다.

하지만 이렇게 작성하면
b=a;
a=b;
부분에서 값손실이 일어납니다.
일단 a의 값을 b에다 넣었습니다.c언어는 위에서 아래로 읽기 때문에
a=b;에서 a값에다 b를 넣지만  위에서 b의 값이 a로 바뀐 상태로 되기때문에 둘다 a의 값과 동일해진다는 오류가 있습니다.
그래서 swap은 아래와 같은 코드

#include <Stdio.h>

int main(void)
{
        int a , b;
        int tmp = 0; //temporay
        
        printf("a :");
        scanf("%d",&a); //1로 입력한경우
        
        printf("b :");
        scanf("%d",&b); //2로 입력한 경우
        
        tmp = b;  //b값 미리 저장
        b = a;  //b값이 a로 바뀜  //swap
        a = tmp;  //a의 값은 tmp의 저장된 b의 값
        
        printf("a : %d\nb : %d\n",a , b);
        
        return 0;
}

이렇게 b의 값을 미리 tmp라는 변수의 저장을해주고
a = tmp;로 저장된 b의 값을 가져옵니다'


  Hit : 5694     Date : 2015/10/17 07:38
[불법/스팸글로 신고하기]



    
wsj7178 이걸 이용해서 함수도 만들수 있죠
void swap(int *x, int *y)
{
int tmp;
tmp = *x;
*x = *y;
*y = tmp;
}
2015/11/29  
1459   레벨업을 위한 시험[6]     skahdi12
12/21 6287
1458   칼리리눅스 튜토리얼[4]     skahdi12
12/21 5625
1457   해킹 관련 사이트 목록입니다.[12]     wlwjsan
11/09 20400
1456   리눅스[LAMP] 을 설명해주는 사이트입니다.[1]     linuxiyka
11/07 6209
  [펌]C Language (swap)[1]     lackhole
10/17 5693
1454   상속, 오버라이딩, 다중상속     tmdrbs9021
10/13 6668
1453   해킹 팀 모집[대회,병특,취업][4]     younglose
10/03 6758
1452   해킹 하기전 필수적인 과목[2]     festal
09/24 6360
1451   [펌] 시간대별 인사     festal
09/24 6397
1450   [펌]C++ switch함수를 이용한 대학교등록금 확인프로그램     festal
09/24 5412
1449   [펌]C++ 언어를 이용한 바이너리 소스     festal
09/24 5084
1448   C++ if else 응용 [1]     festal
09/24 5609
1447 비밀글입니다  테일즈런너 해킹 사건     festal
09/24 0
1446   리버스 엔지니어링 [1]     festal
09/24 5944
1445   칼리리눅스 웹해킹 잘하는분      festal
09/24 6780
1444   리눅스 관련질문 [1]     festal
09/20 5040
1443   해커스쿨 F.T.Z     festal
09/20 5214
1442   네트워크상의 사이트 유도     festal
09/20 5991
1441   [JAVA] 에서 abstract 와 interface 차이점     poiu2069
09/16 4864
1440   2-Tier , 3-Tier 간단 설명     poiu2069
09/16 5378
[1][2][3][4][5][6] 7 [8][9][10]..[79]

Copyright 1999-2021 Zeroboard / skin by Hackerschool.org / Secure Patch by Hackerschool.org & Wowhacker.com