C

배열을 인자로 받는 함수 만들기

corin13 2024. 2. 10. 19:57

 

#include<stdio.h>
#include<time.h>
#include<stdlib.h>

#define SIZE 100

int arrSum(int arr[], int size);    //점수의 합
int min(int arr[], int size);   //최소값
int max(int arr[], int size);   //최대값
float mean(int arr[], int size);    //평균값

int main(void)
{
    srand((unsigned)time(NULL));
   
    int arr[SIZE] = {0};
   
    for(int i = 0;i<SIZE;i++)   //난수 넣기
    {
        arr[i] = rand()%100+1;  //arr[i] = 1~100 사이의 값
        printf("%d ",arr[i]);
    }
   
    printf("\n합계 : %d\n",arrSum(arr,sizeof(arr)/sizeof(arr[0]); //배열, 원소 개수
    printf("최소값 : %d\n",min(arr,sizeof(arr)/sizeof(arr[0]));
    printf("최대값 : %d\n",max(arr,sizeof(arr)/sizeof(arr[0]));
    printf("평균 : %.2f\n",mean(arr,sizeof(arr)/sizeof(arr[0]));
    return 0;
}

/*합계*/
int arrSum(int arr[], int size)
{
    int sum = 0;

    for(int i = 0;i<size;i++)
        sum+=arr[i];
    return sum;
}

/*최소값*/
 int min(int arr[], int size)
 {
    int min;

    for(int i=0;i<size-1;i++)
    {
        if(i==0)
            min = arr[i];   // i가 0일 땐, min에 arr[i]값 넣기
        else if(arr[i]<min) //arr[i]와 min 비교해서 작으면 min값 변경
            min = arr[i];
    }
    return min;
 }
 
 /*최대값*/
 int max(int arr[], int size)
 {
    int max;

    for(int i=0;i<size;i++) //최대값 찾기
    {
        if(i==0)
            max = arr[i];   // i가 0일 땐, max에 arr[i]값 넣기
        else if(arr[i]>max) //arr[i]와 min 비교해서 크면 max값 변경
            max = arr[i];
    }
    return max;
 }
 
 /*평균값*/
 float mean(int arr[], int size)
 {
    float avg = (arrSum(arr,size)/(float)size); //위에 만든 sum 사용
    return avg;
 }