#include <stdio.h>
struct Point2D {
int x;
int y;
};
int main(void)
{
struct Point2D p[3];
p[0].x = 10;
p[0].y = 20;
p[1].x = 30;
p[1].y = 40;
p[2].x = 50;
p[2].y = 60;
for (int i = 0; i < sizeof(p) / sizeof(struct Point2D); i++)
printf("%d %d\n", p[i].x, p[i].y);
return 0;
}
53.5 연습문제: 인적 정보를 초기화하기
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct Person {
char name[20];
char address[100];
int age;
};
int main(void)
{
struct Person *p[3000];
for (int i = 0; i < sizeof(p) / sizeof(struct Person*); i++)
{
p[i] = malloc(sizeof(struct Person));
memset(p[i], 0, sizeof(struct Person));
}
printf("%d\n", p[2000]->age);
for (int i = 0; i < sizeof(p) / sizeof(struct Person*); i++)
free(p[i]);
return 0;
}
53.6 심사문제: 선의 길이 구하기
#include <stdio.h>
#include <math.h>
struct Point2D {
int x;
int y;
};
int main(void)
{
struct Point2D p[4];
double length = 0.0;
for (int i = 0; i < sizeof(p) / sizeof(struct Point2D); i++)
{
printf(">> ");
scanf_s("%d%d", &p[i].x, &p[i].y);
}
printf("\n");
// a와 b의 길이
int a = p[3].x - p[0].x;
int b = p[3].y - p[0].y;
// 길이(c) 구하기
length = sqrt(pow(a, 2) + pow(b, 2));
printf("%f\n", length);
return 0;
}
53.7 심사문제: 나이가 가장 많은 사람 찾기
#include <stdio.h>
#include <stdlib.h>
struct Person {
char name[30];
int age;
};
int main(void)
{
struct Person *p[5];
for (int i = 0; i < sizeof(p) / sizeof(struct Person*); i++)
p[i] = (struct Person*)malloc(sizeof(struct Person));
for (int i = 0; i < sizeof(p) / sizeof(struct Person*); i++)
{
printf("%d번째 사람의 정보를 입력해주세요.\n", i + 1);
printf("이름>> ");
scanf_s("%s", p[i]->name, sizeof(p[i]->name));
printf("나이>> ");
scanf_s("%d", &p[i]->age);
printf("\n");
}
int maxAge = p[0]->age;
int maxAgeIndex = 0;
for (int i = 1; i < sizeof(p) / sizeof(struct Person*); i++)
{
if (maxAge < p[i]->age)
{
maxAge = p[i]->age;
maxAgeIndex = i;
}
}
printf("나이가 가장 많은 사람은 %s입니다.\n", p[maxAgeIndex]->name);
for (int i = 0; i < sizeof(p) / sizeof(struct Person*); i++)
free(p[i]);
return 0;
}
#include <stdio.h>
#include <stdlib.h>
struct Person {
char name[30];
int age;
};
int main(void)
{
struct Person *p[5];
for (int i = 0; i < sizeof(p) / sizeof(struct Person*); i++)
p[i] = (struct Person*)malloc(sizeof(struct Person));
for (int i = 0; i < sizeof(p) / sizeof(struct Person*); i++)
{
printf("%d번째 사람의 정보를 입력해주세요.\n", i + 1);
printf("이름>> ");
scanf_s("%s", p[i]->name, sizeof(p[i]->name));
printf("나이>> ");
scanf_s("%d", &p[i]->age);
printf("\n");
}
int maxAgeIndex = 0;
for (int i = 0; i < sizeof(p) / sizeof(struct Person*); i++)
{
if (p[i]->age > p[maxAgeIndex]->age)
maxAgeIndex = i;
}
printf("나이가 가장 많은 사람은 %s입니다.\n", p[maxAgeIndex]->name);
for (int i = 0; i < sizeof(p) / sizeof(struct Person*); i++)
free(p[i]);
return 0;
}