#include <stdio.h>

#include <windows.h>

int main()
{


 //배열의 생성과 초기화
 int 배열[] = {
 
 5,3,9,1,7
 
 };

 //배열의 길이 구하기
 int 길이 = sizeof(배열) / sizeof(int);

 int i, j; //반복문에 사용될 인덱스 변수

 int 총합 = 0; //총합 저장용
 //sum

 float 평균 = 0; //평균 저장용
 //avr


 int 최대값 = 0; //최대값 저장용
 //max

 int 최소값 = 0; //최소값 저장용
 //min

 //오름차순 정렬용
 int 분류최소값, 분류인덱스, 임시;
 //sortMin , sortIdx ,tmp


 //배열의 각 요소에 접근
 for (i = 0; i < 길이; i++)
 {

  printf("arr[%d] : %d\n", i, 배열[i]);

 }

 //총합 구하기

 for (i = 0; i < 길이; i++)
 {

  //배열의 각 요소를 더하기 연산
  총합 += 배열[i];

 }

 printf("* 총합 : %d\n", 총합);

 //평균 구하기
 for (i = 0; i < 길이; i++)
 {

  //배열의 각 요소를 더하기 연산
  //위에서 총합을 구했기때문에 이를 재활용해도됨
  평균 += 배열[i];

 }

 평균 /= 길이; //배열의 길이로 평균을 나누어 평균에 대입
 printf("* 평균 : %.2f\n", 평균);


 //최대값 구하기

 for (i = 0; i < 길이; i++)
 {

  //배열의 각 요소들과 현재 최대값을 비교
  //최대값보다 크다면 최대값에 대입

  if (배열[i] > 최대값)
   최대값 = 배열[i];


 }
 printf("* 최대값 : %d\n", 최대값);


 //최소값 구하기

 //최소값을 구할때 초기값을 0으로 지정하게되면
 //0보다 작은수가 있지않다면 원하는 답을 구할수없게됨.

 최소값 = 최대값;
 for (i = 0; i < 길이; i++)
 {


  //배열의 각 요소들과 현재 최소값을 비교
  //최소값보다 작다면 최소값에 대입
  if (배열[i] < 최소값)
   최소값 = 배열[i];

  

 }
 printf("* 최소값 : %d\n", 최소값);

 //

 // 오름차순 정렬
 //자료구조를 아직 학습하지않았다는 가정 하에 진행
 //1.배열의 요소 중에서 가장 작은 수를 골라내서
 //2. 배열의 가장 앞 부분의 요소와 교환
 //3. 그럼 첫번째 요소는 정렬이 완료된 상태이므로
 // 다음 요소부터 다시 검사
 // 4. 1~3 반복

 //

 for (i = 0; i < 길이 - 1; i++)
 {

  //최소값을 담고있는 배열 요소의 인덱스 구하기
  분류최소값 = 최대값;

  //검사할 배열의 첫 인덱스를
  //검사 횟수를 관리하는 반복문의 인덱스를 넣어주어
  //한번의 검사가 끝날 때마다 하나 씩 증가하도록 구성

  for (j = i; j < 길이; j++)
  {

   if (배열[j] < 분류최소값)
   {

    분류최소값 = 배열[j];

    분류인덱스 = j;


   }


  }


  //최소값과 현재 검사 중인 배열요소 중
  //가장 앞 요소와 교환
  임시 = 배열[i];
  배열[i] = 배열[분류인덱스];
  배열[분류인덱스] = 임시;



 }

 printf("* 오름차순 정렬후 : ");

 for (i = 0; i < 길이; i++)
 {

  printf("-", 배열[i]);

 }
 printf("\n");

 //- 라고 하면, 숫자를 두 자리에 맞춰 출력해 줍니다.
 //자릿수가 두 자리보다 크다면 무시되구요.
 //한 자리 숫자일 때, 앞에 빈 칸이 하나
  
 //들어가고 숫자가 찍혀서..결과적으로는
 //두 칸을 차지하게 해주죠.


 system("pause");


 return 0;
}