c언어 질문입니다.

조회수 381회
#include <stdio.h>

//Function Declaration
double average(int size,int ary[*]);

int main()
{
//local declartion
    int size;
    double ave;
//Statements
    printf("How many numbers do you want to average? ");
    scanf("%d",&size);
    //Create and fill variable-length array
    {
        //local declation
        int ary[size];

        for(int i=0; i<size; i++)
        {
            printf("enter number %2d: ",i+1);
            scanf("%d",&ary[i]);
        }//for
    ave=average(size,ary);

    }
    printf("Average is: %1f",ave);
    return 0;
}
double average(int size, int ary[size])
    {
        int sum=0;
        double ave;
        for(int i=0;i<size; i++)
        {
            sum+=ary[i];
        }
        ave=(double)sum/size;
        return ave;
    }

```오류가 계속 뜨네요 책에 있는 내용 그대로 옮겼는데 잘 안되네요 책에서 봤을 때는 배열의 크기가 변하면 안에*을 넣어라고 되어있는데 먼지 모르게 잘 실행이 안되네요

  • (•́ ✖ •̀)
    알 수 없는 사용자
  • 해결했습니다.ㅠㅠ 알 수 없는 사용자 2020.8.30 17:07
  • 가변 길이 배열은 C99의 기능입니다. 사용조건이 매우 한정적일 거구요. 사용하시는 컴파일러에 따라서는 에러가 날 수 있습니다. 배열을 크게 잡아 사용하거나, malloc 함수를 이용한 메모리 동적할당을 사용하는 편이 더 편할거에요. 알 수 없는 사용자 2020.8.30 22:14

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)