#include <stdio.h> // 기본 라이브러리
#include <stdlib.h> // 랜덤 함수사용을 위한 라이브러리 문장
#include <time.h> // 랜덤 함수의 정해진 숫자를 변경해주는 함수를 추가하는 라이브러리 문장.
#define AVG(x,y) printf("%.1f\n",(float)(x)/(y))
void array_DESC(int list[],int n) // 내림차순으로 정렬을 해주는 함수
{
int i,j,less,temp;
for(i=0; i<n-1; i++) // 선택 정렬의 첫번째 문장
{
less=i;
for(j=i+1; j<n; j++)
{
if(list[less]<list[j]) // 내림차순으로 정렬을 해주는 문장이다
{
less=j;
}
}
if(i!=less) // 배열의 숫자를 정렬 하는 것이지만 같은 값이면 실행하지않는다.
{
temp = list[i];
list[i] = list[less];
list[less]=temp;
}
}
}
void array_ASC(int list[],int n) // 오름차순 정렬을 해주는 함수
{
int i,j,less,temp;
for(i=0; i<n-1; i++) // 선택 정렬의 첫번째 문장
{
less=i;
for(j=i+1; j<n; j++)
{
if(list[less]>list[j]) // 오름차순으로 정렬을 해주는 문장이다
{
less=j;
}
}
if(i!=less) // 배열의 숫자를 정렬 하는 것이지만 같은 값이면 실행하지않는다.
{
temp = list[i];
list[i] = list[less];
list[less]=temp;
}
}
}
int main()
{
srand(time(NULL)); // 랜덤시드의 값을 변경해주는 문장이다.
int c=0,v=0,n=0,ASC_DESC=0;
printf("오늘 들어온 사람의 수는? : ");
scanf("%d ",&n); // 들어온 사람의 숫자를 정해주는 문장.
int list[n];
printf("정렬방법을 정해주세요. 오름차순(1) 내림차순(2) : ");
scanf("%d ",&ASC_DESC);
switch (ASC_DESC)
{
case 1 : { for(int i=0; i<n; i++) // 배열에 랜덤 값을 저장하는 것을 반복하는 문장.
{
list[i]=rand()%99+1; // 배열에 랜덤 값을 저장하는 문장.
}
printf("들어온 사람들의 나이\n");
for(int i=0; i<n; i++)
{
printf("%d ",list[i]); // 정렬전 값을 출력하는 문장.
}
printf("\n");
array_ASC(list,n); // 선택 정렬 함수를 사용한 문장
printf("사람들의 나이를 오름차순 정렬표\n");
for(int i=0; i<n; i++) // 정렬한 값을 출력해주는 반복문
{
printf("%d ",list[i]);
}
break;
}
case 2 : { for(int i=0; i<n; i++) // 배열에 랜덤 값을 저장하는 것을 반복하는 문장.
{
list[i]=rand()%99+1; // 배열에 랜덤 값을 저장하는 문장.
}
printf("들어온 사람들의 나이\n");
for(int i=0; i<n; i++)
{
printf("%d ",list[i]); // 정렬전 값을 출력하는 문장.
}
printf("\n");
array_DESC(list,n); // 선택 정렬 함수를 사용한 문장
printf("사람들의 나이를 내림림차순 정렬표\n");
for(int i=0; i<n; i++) // 정렬한 값을 출력해주는 반복문
{
printf("%d ",list[i]);
}
break;
}
default : { for(int i=0; i<n; i++) // 배열에 랜덤 값을 저장하는 것을 반복하는 문장.
{
list[i]=rand()%99+1; // 배열에 랜덤 값을 저장하는 문장.
}
printf("들어온 사람들의 나이\n");
for(int i=0; i<n; i++)
{
printf("%d ",list[i]); // 정렬전 값을 출력하는 문장.
}
printf("\n");
array_DESC(list,n); // 선택 정렬 함수를 사용한 문장
printf("사람들의 나이 기본정렬표(내림차순)\n");
for(int i=0; i<n; i++) // 정렬한 값을 출력해주는 반복문
{
printf("%d ",list[i]);
}
}
}
for(int i=0; i<n; i++) // 들어온 사람의 값의 평균을 구하는 숫자
{
v=v+list[i];
c++;
}
printf("\n");
printf("들어온 사람들의 나이 평균 : "); // 평균값을 출력하는 문장
AVG(v,c);
return 0; // 종료 문장
}
To embed this program on your website, copy the following code and paste it into your website's HTML: