C++/summary

배열함수 선언법 && 매개변수 전달방식(포인트)

gandus 2010. 4. 15. 11:16
기본적인 배열함수


int grade[5] = {12,....}
get_grade(grade, 5)  // 함수의 호출

get_average(int score[], int size);    
get_average(int  *score, int size);    // 함수의 정의는 이 두가지 사용가능하다.



함수를 전달시에 바뀔것을 방지.

arrat(char desc[] ,  const char src[], int size);      //   desc는 변형해도 가능 ,하지만src는 변형우려가 있어서
  //   src는  Const 를 사용해서 미리 방지를 해준다.
 

매개변수

1. pass by value     : 값을 복사한다.    -> 원본은 변형안됨

2. pass by address : 주소값을 넘긴다.  -> 원본도 같이 변형된다.




여기에 대한 실습 




#include<iostream>

#include<cmath>

using namespace std;


#define NUM 5


double StdDev(const double grade[],double *avg,double *bun);


void main()

{

        int i=0;

        

        double grade[NUM]= {0};

        double avg=0, bun =0;


        for (i=0; i< NUM; i++)

        {

                cout<< i+1<< "번째학생의성적을입력하시오: "

                cin>> grade[i];

        } cout<<endl;

        

        

        cout<< "평균은" << avg <<"이고" << " 분산평균은"<< bun << " 이고표준편차는"

                << StdDev(grade, &avg, &bun)<<"입니다<<endl;


}


double StdDev(const double grade[],double *avg,double *bun)

{

        int i=0;

        double sum=0;


        for(i=0; i<NUM ; i++)

                sum  += grade[i];

        

        *avg = sum / (double)NUM;        // 평균을구한다


        for(i=0; i<NUM ; i++)

                *bun += pow(*avg - grade[i], 2.0);


        *bun = *bun /(double)NUM;


        

        return sqrt(*bun);

}