반응형
#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
}
반응형
'C++' 카테고리의 다른 글
c++ Interchange Insertion Sort(자리교환 삽입정렬)(내림차순) (0) | 2023.01.12 |
---|---|
c++ 이분탐색 (0) | 2023.01.12 |
c++ bidirectional bubble sort(양방향 버블 솔트) (0) | 2023.01.10 |
c++ 실수는 더하고 정수는 곱하기 (0) | 2023.01.10 |
c++ 실수는 더하고 정수는 곱하고 문자는 아스키코드 값으로 더하기 (0) | 2023.01.10 |