#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;
}
댓글 0