1577, 73/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 : 6516     Date : 2015/10/17 07:38
[불법/스팸글로 신고하기]



    
wsj7178 이걸 이용해서 함수도 만들수 있죠
void swap(int *x, int *y)
{
int tmp;
tmp = *x;
*x = *y;
*y = tmp;
}
2015/11/29  
137   [JAVA] 에서 abstract 와 interface 차이점     poiu2069
09/16 5672
136   네트워크상의 사이트 유도     festal
09/20 7051
135   해커스쿨 F.T.Z     festal
09/20 6208
134   리눅스 관련질문 [1]     festal
09/20 6019
133   칼리리눅스 웹해킹 잘하는분      festal
09/24 7616
132   리버스 엔지니어링 [1]     festal
09/24 6925
131 비밀글입니다  테일즈런너 해킹 사건     festal
09/24 0
130   C++ if else 응용 [1]     festal
09/24 6657
129   [펌]C++ 언어를 이용한 바이너리 소스     festal
09/24 6088
128   [펌]C++ switch함수를 이용한 대학교등록금 확인프로그램     festal
09/24 6406
127   [펌] 시간대별 인사     festal
09/24 7349
126   해킹 하기전 필수적인 과목[2]     festal
09/24 7200
125   해킹 팀 모집[대회,병특,취업][4]     younglose
10/03 7711
124   상속, 오버라이딩, 다중상속     tmdrbs9021
10/13 7973
  [펌]C Language (swap)[1]     lackhole
10/17 6515
122   리눅스[LAMP] 을 설명해주는 사이트입니다.[1]     linuxiyka
11/07 7460
121   해킹 관련 사이트 목록입니다.[12]     wlwjsan
11/09 22230
120   칼리리눅스 튜토리얼[4]     skahdi12
12/21 6602
119   레벨업을 위한 시험[6]     skahdi12
12/21 7192
118   버퍼오버플로우 왕기초편 pdf 파일 어디서 구할 수 있나요?     duduwon
02/08 8814
[1]..[71][72] 73 [74][75][76][77][78][79]

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