Notice
Recent Posts
Recent Comments
Link
«   2025/08   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
Tags
more
Archives
Today
Total
관리 메뉴

문타쿠, 공부하다.

[C언어 코딩 도장] Unit 53. 연습문제 및 심사문제 본문

C언어/C언어 코딩 도장

[C언어 코딩 도장] Unit 53. 연습문제 및 심사문제

개발새발 문타쿠 2023. 12. 8. 02:11

53.4 연습문제: 2차원 좌표 출력하기

#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;
}