#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; // 종료 문장
}

Embed on website

To embed this program on your website, copy the following code and paste it into your website's HTML: