#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
struct Person {
char name[30];
int age;
};
int main()
{
struct Person *p[5];
for (int i = 0; i < sizeof(p) / sizeof(struct Person *); i++)
{
p[i] = malloc(sizeof(struct Person));
}
scanf("%s %d %s %d %s %d %s %d %s %d", p[0]->name, &p[0]->age,
p[1]->name, &p[1]->age,p[2]->name, &p[2]->age,p[3]->name, &p[3]->age,
p[4]->name, &p[4]->age);
int best=0;
int kkk=0;
for (int i = 0; i < sizeof(p) / sizeof(struct Person *)-1; i++)
{
if (best <= p[i]->age) {
best = p[i]->age;
kkk=i;
}
}
printf("%s", p[kkk]->name);
for (int i = 0; i < sizeof(p) / sizeof(struct Person *); i++)
{
free(p[i]);
}
return 0;
}
이 코드를 예시를 넣어서 돌릴때 다 실행되는데 답안오류가 나는 이유가 궁금합니다.
문의한 코드의 실행 결과입니다.
이산 28 심환지 50 이덕무 39 정민시 35 서명응 64
심환지
최고 연장자를 찾는 문제이므로 서명응이 출력되어야 합니다. 버그가 있습니다. 연장자를 첫 번째, 두 번째, 세 번째... 각각의 테스트 케이스로 넣어서 모두 올바른 결과를 내는지 확인하세요.