#include <stdio.h>
#define DSIZE 10

void input(int *array);
void output(int *array);
void min(int *array);
void max(int *array);
void total(int *array);
void ave(int *array);

void input(int *array)
{
	int i;

	for(i = 0; i < DSIZE; i++)
	{
	printf(" Input %2dth data :", i + 1);
	scanf("%4d", array[i]);

	array++;
	}
	printf("\n");
}

void output(int *array)
{
	int i;
	
	printf("\n Array :");

	for(i = 0; i < DSIZE; i++)
	{
	printf("%4d", array[i]);
	array++;
	}

	printf("\n");
}

void min(int *array)
{
    int i, j, num;
    
    for (i = 0; i < DSIZE - 1; i++) 
    {
        for (j = i + 1; j < DSIZE; ++j) 
	{
            if (array[i] < array[j]) 
	    {
                num = array[i];
                array[i] = array[j];
                array[j] = num;
            }
        }
    }

	printf("\n Array :");
	
	for(i = 0; i < DSIZE; i++)
	printf("%4d", array[i]);

	printf("\n");
}

void max(int *array)
{	
	int i,j,num;
	
	  for (i = 0; i < DSIZE; i++)
	{
	    for (j = i + 1; j < DSIZE; j++)
	{
	      if (array[i] < array[j])
	     {
	        num =  array[i];
	        array[i] = array[j];
	        array[j] = num;
	      }
	    }
	  }

	printf("\n Array :");
	
	for(i = 0; i < DSIZE; i++)
	printf("%4d", array[i]);

	printf("\n");
}

void total(int *array)
{
	int i, sum;
	
	for(i = 0; i < DSIZE; i++)
	sum += array[i];

	printf("\n Total is %4d\n", sum);
}

void ave(int *array)
{
	int i;
	double sum;
	
	for(i = 0; i < DSIZE; i++)
	sum += array[i];

	printf(" Average is %.1f\n", sum / 10.0);
}


int main(void)
{
int array[] = { 1, -2, 3, -5, 7, -11, 13, -15, 17, -19 };
int code = 1;

	printf("Welcome to array system\n");
	while( code != 0 )  {
		printf("\n Input data   --> 1");
		printf("\n Output data  --> 2");
		printf("\n Minimum sort --> 3");
		printf("\n Maximum sort --> 4");
		printf("\n Total        --> 5");
		printf("\n Average      --> 6");
		printf("\n End          --> 0");
		printf("\n\n Input Command : ");	scanf("%d",&code);
}
/*　この部分でコマンドの解析を行い、それに対応した各関数を呼び出す　*/

//再入力
if (code == 1)
input(array);

//表示
if (code == 2)
output(array);

//昇順
if (code == 3)
min(array);

//降順
if (code == 4)
max(array);

//総和
if (code == 5)
total(array);

//平均値
if (code == 6)
ave(array);

return 0;
}
