c언어 구조체와 동적할당에 관련된 질문입니다.
본문
지금 구현한 형태에서 동적할당을 이용하면서 구조체를 이용해 학생 이름, 학번, 점수 이 세가지 값을 입력받아서 처리하고 싶은데 어디서부터 손을 대야할지 방법을 잘 모르겠습니다.
#include <stdio.h>
#include <stdlib.h>
struct info {
char name[12];
int number;
int score;
};
typedef struct info info;
void main()
{
int n, i, sum = 0, * p;
double avg;
printf("학생 수를 입력하시오 : ");
scanf_s("%d", &n);
p = (int*)malloc(n * sizeof(struct info));
printf("학생 수 만큼의 이름과 학번과 점수를 입력하시오 : ");
for (i = 0; i < n; i++) {
scanf_s("%d", p + i); //&p[i]
sum += p[i]; //*(p+i)
}
avg = (double)sum / n;
int max = p[0];
for (i = 1; i < n; i++) {
if (p[i] > max) max = p[i];
}
free(p);
printf("평균: %.2lf 최고점: %d \n", avg, max);
}
답변 1
p = (info*)malloc(n * sizeof(struct info));
printf("학생 수 만큼의 이름과 학번과 점수를 입력하시오 : ");
for (i = 0; i < n; i++) {
scanf_s("%s", &p[i].name); //&p[i]
scanf_s("%d", &p[i].number); //&p[i]
scanf_s("%d", &p[i].score); //&p[i]
sum += p[i].score;
}
답변을 작성하시기 전에 로그인 해주세요.