밑과 같이 코드를 작성했고, 세개의 예문 모두 결과가 맞게 나오는데
정답에 제출하면 틀렸다고 합니다. 이유를 알고 싶습니다.
#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 oldestIndex = 0;
for (int i = 0; i < sizeof(p) / sizeof(struct Person *) - 1; i++) {
if (p[oldestIndex]->age < p[i]->age) {
oldestIndex = i;
}
}
printf("%s\n", p[oldestIndex]->name);
for (int i = 0; i < sizeof(p) / sizeof(struct Person *); i++) {
free(p[i]);
}
return 0;
}
이전 답변을 참고하세요.
https://dojang.io/mod/forum/discuss.php?d=241&parent=562
상단 포럼 검색에서 53.7을 넣으면 더 많은 내용을 볼 수 있습니다.