본문 바로가기

[C++]과제 8.

반응형

/*1. 다음 배열을 가리킬 수 있는 포인터 변수를 선언 및 초기화 하

세요.

1) int C[9];

   

2) char B[20];

   

3) double A[10][10];

   

4) int D[5][7];

   

5) char E[4][5];

   

배열 << 포인터변수 <<선언 및 초기화 */

   

#include <iostream>

   

using namespace std;

   

int main()

{

  int C[9]={0, };    //배열 선언 {0,  }를 입력하면 

나머지를 다 0으로 선언.

  char B[20]="asd";  //문자열 입력.

  double A[10][10];

  int D[5][7];

  char E[4][5]={"ghjk", };

   

      

  int* dC = &C[0];  //int 포인터 변수 dC를 선언, 배

열의 첫째 주소입력, C를 넣어도 같은 값 출력.

  char* dB = &B[0];

  double (*dA)[10= &A[0]; 

  int (*dD)[7= &D[0];

  char (*dE)[5= E;

   

    

  cout << C[0<<"\n";  //모두 0이 된 것을 확인

  cout << C[1<<"\n";  //모두 0이 된 것을 확인

  cout << &C[0]<<"\n";  //배열의 첫째 주소 출력

  cout<< dC<<"\n";  //포인트 변수 dC를 출력

  cout << C <<"\n";    //배열 C를 출력

   

  cout <<"\n";

    

      //배열의 첫째 주소 = 포인트변수 = 배열C 

출력값 같음.

        //(배열 이름은 주소)

   

  cout << &B[0<<"\n";

  cout << dB << "\n";

  cout << B << "\n";

  cout << &B[1<<"\n";//각각의 인덱스에 넣어진거 증명.

  cout << &B[2<<"\n";

   

  cout <<"\n";

   

  cout << &A[0<<"\n";

  cout << dA <<"\n";

  cout << A <<"\n";

   

  cout <<"\n";

   

  cout << &D[0<< "\n";

  cout << dD << "\n";

  cout << D << "\n";

   

  cout <<"\n";

   

  cout << &E[0][0<< "\n";  // 지점에 값이 있으니

까 출력된다.

  cout << &<<"\n";

  cout << dE << "\n";

  cout << E << "\n";

   

   

   

  return 0;

   

   

}

   

   

   

   

/*2. 함수의 선언은 다음과 같습니다. 이 함수를 가리킬 수 있는 포인터 

변수를 선언 및 초기화 하세요.

1) char IntToChar(int num);

   

2) void MaxNum(int N1, int N2);

   

3) int OutputIDnum(char* name, int pwd);*/

   

   

#include <iostream>

   

using namespace std;

   

   

  char IntToChar(int num)

  {

    return 0;

  }

   

  void MaxNum(int N1, int N2)

  {

      

  }

   

  int OutputIDnum(char* name, int pwd)

  {

    return 0;

  }  

   

   

int main()

{

    

    

  char (*f1)(int)= IntToChar;;  //함수 선언

  void (*f2)(int , int)=MaxNum;

  int (*f3)(char* , int= OutputIDnum;

   

  cout << f1<<"\n";  //출력

  cout << f2<<"\n";

  cout << f3<<"\n";

   

   

  return 0;

}

   

   

   

/*3. 클래스 멤버 함수를 가리킬 수 있는 포인터 변수를 선언 및 초

   

기화를 하세요.

   

(클래스 외부에서 포인터 선언한다고 가정)

class Point{

private:

int x, y;

public:

Point();

Point(int initX, int initY);

Point(const Point& pt);

   

void SetX(int value);

void SetY(int value);

int GetX();

int GetY();

   

static void SetGlobal(int g_val);

};

*/

   

   

   

   

   

#include <iostream>

   

using namespace std;

   

class Point{

   

   

public:

int x, y;

Point();

Point(int initX, int initY);

Point(const Point& pt);

   

//void SetX(int value);

//void SetY(int value);

int GetX();

int GetY();

void Print();

   

static void SetGlobal(int g_val);

   

   

};

   

typedef void (Point::*FP1)(int);

   

void Point::Print()

{

cout <<"(" << x << ", " << y << ")\n";

}

   

void

   

   

int main()

{

Point pt(50 ,50);

   

//FP1 fp1 = &Point::SetX;

   

(pt.*fp1)(100);

   

pt.Print();

   

return 0;

}

   

   

   

/*4. 사용자에게 년도를 입력 받아 윤년인지 아닌지를 판단하는 판
단하는 프로그램을 작성하시오.
윤년은 아래와 같다.
4로 나누어 떨어지는 해이다.
그 중에서 100으로 나누어 떨어지는 해는 평년
다만 400으로 나누어 떨어지는 해는 다시 윤년
출력)  Input Year :  2000
  [2000] is leap year
  Input Year :  2001
  [2001] is common year*/



#include <iostream>

using namespace std;

int main()
{
  int a;
  cout << "Input Year :";
  cin >> a;
  if( a%4 == 0 || a%400 ==0)
  {
    cout << "[" << a <<"]" <<"is leap year";
  }

  else 
  {
    cout << "[" << a <<"]" <<"is common year";
  }

}
    
  

   

   

   

   

반응형
-->