반응형
#include <iostream>  	//선언부 컴파일에 접근을해서 선언파트에 있는 걸 처리해서 사용 
using namespace std;    //std라는 소속을 알려줄 필요가 다음부터 없는것 등록을 했을경우 ex( std::cout 

int main()				// 몸체부, 메인 함수 // int 를 쓰는이유는 비정상적인 오류를 제외 시키는것
						//void를 써도 상관없지만 오류가 날수도있고 계속 컴퓨터가 값을 기다린다
{
   int a[5]={1,4,3,2,5};											//arr 이라는 배열이 가르키는 주소 메모리 값을 5로 선언과 동시에 1,4,3,2,5로 초기화 
   int temp=0; 														//temp라는 변수가 가르키는 주소 값에 메모리안에 0을 선언 0으로 초기화 
   int data=0;														//data 이라는 변수가 가르키는 주소 값에 메모리안에 0을 선언 0으로 초기화 
   cout << "============data============" <<endl; 					//데이터값 출력문, 줄바꿈  

   for(int i=0; i<5; i++) 											//0 ~ 4까지 1++ 조건식이 트루일때만 실행 그리고 문장을 갔다가 증감식을가고 다시 조건식
   {
   	  cout<< i+1 << "번째 배열 값: ";		 						// i+1 번째 배열값 출력문 
      cout<<a[i]<<endl; 											// a[i] 배열 값 출력문, 줄바꿈 
   }
    cout<<endl;														//줄바꿈 
  cout << "============swap============" << endl;					//솔트 시작 출력문, 줄바꿈 
  for (int i=0; i<4; i++)											//0 ~ 4까지 1++ 조건식이 트루일때만 실행 그리고 문장을 갔다가 증감식을가고 다시 조건식
   {
      if (a[i] < a[i+1])											//a[i] 배열 값이 a[i+1]보다 작다면 if조건문 실행 
      {
         temp = a[i+1];												//temp 배열 값에 주소가 가르키는 메모리 값에 a[i+1] 대입 
         a[i+1] = a[i];												//a[i+1] 배열 값에 주소가 가르키는 메모리 값에 a[i] 대입
         a[i] = temp;												//a[i] 배열 값에 주소가 가르키는 메모리 값에 temp 대입    솔트문 

         for(int j=0; j<5; j++)										//0 ~ 4까지 1++ 조건식이 트루일때만 실행 그리고 문장을 갔다가 증감식을가고 다시 조건식
         {
            cout<<a[j]<<" ";										//a[j] 배열값 출력문 
         }
            cout << endl;					 						//줄바꿈 
      }
   }
   
   for(int i=4;i>0;i--){											//4 ~ 1까지 1-- 조건식이 트루일때만 실행 그리고 문장을 갔다가 증감식을가고 다시 조건식
      if(a[i]>a[i-1]){												//a[i] 배열 값이 a[a+i]보다 크다면 if조건문 실행 
         temp=a[i];													//temp 배열 값에 주소가 가르키는 메모리 값에 a[i] 대입 
         break;														//for문 탈출 
      }
   }
   for(int i=3;i>0;i--){											//3 ~ 1까지 1-- 조건식이 트루일때만 실행 그리고 문장을 갔다가 증감식을가고 다시 조건식
      if(temp>=a[i]){												//temp 값이 a[i]보다 크거나 같다면 if조건문 실행 
         a[i]=a[i-1];												//a[i] 배열 값에 주소가 가르키는 메모리 값에 a[i-1] 대입
      } 
   }
   for(int i=0;i<5;i++){											//0~4까지 1++ 조건식이 트루일때만 실행 그리고 문장을 갔다가 증감식을가고 다시 조건식
      if(data<a[i]) {												//data 값이 a[i]보다 작다면 if조건문 실행 
         data=a[i];													//data 값에 주소가 가르키는 메모리 값에 a[i] 대입
      }
   }
   if((a[0]==a[1])&&(temp>data))									//a[0]값과 a[1]값이 같으면서 temp값이 data보다 커야 if조건문 실행 
      {
        a[0]=temp;													//a[0] 배열 값에 주소가 가르키는 메모리 값에 temp대입
    }
   cout<<endl<<"최종 배열 값:";										//최종 배열 값 출력문 

   for(int i=0;i<5;i++) 											//0~4까지 1++ 조건식이 트루일때만 실행 그리고 문장을 갔다가 증감식을가고 다시 조건식
   {
      cout<<" "<<a[i]; 												//a[i] 배열값 출력 
   }  
   return 0; 														//리턴값 0 
}
반응형