[문제]
구조체를 사용하여 점1은 [1, 2], 점2는 [100, 200]으로 초기화 하라.
그리고 포인터를 사용하여 점1은 2씩 증가시키고 점2는 4씩 증가시키는 프로그램을 작성하라.
조건1) 포인터를 사용하여 접근하는 방법은 2가지를 사용할 것(ptr[0].xpos 형식은 제외)
조건2) 구조체 배열을 사용할 것
조건3) 구조체 포인터를 사용할 것
조건4) 출력하는 함수를 따로 만들 것
[실행결과]
[1, 2] [100, 200]
[3, 4] [104, 204]
[코드]
#include<stdio.h>
struct point
{
int xpos;
int ypos;
};
void print(struct point* po);
int main(void)
{
struct point pos[2] = {
{1,2},
{100, 200}
};
struct point* ptr = pos;
print(pos);
(*ptr).xpos += 2; // 점1 2씩 증가
(*ptr).ypos += 2;
(ptr + 1)->xpos += 4; //점2 4씩 증가
(ptr + 1)->ypos += 4;
print(pos);
return 0;
}
void print(struct point* po) // 구조체 배열을 출력
{
int i;
for (i = 0; i < 2; i++)
printf("[%d, %d] ", po[i].xpos, po[i].ypos);
printf("\n");
}
<참고>
윤성우의 열혈 C 프로그래밍
'C 언어 > 연습문제' 카테고리의 다른 글
C언어 연습문제45 (0) | 2022.04.08 |
---|---|
C언어 연습문제44 (0) | 2022.04.08 |
C언어 연습문제43 (0) | 2022.04.08 |
C언어 연습문제42 (0) | 2022.04.06 |
C언어 연습문제41 (0) | 2022.04.06 |