#include <stdio.h>
#define STUDENTS 4



struct student { //1.성적 입력
int number;
char name[10];
double grade;
};
struct student s;
struct student *p;

(*p) =&s;


void ShowMenu(void); //메뉴 출력


int main(void)
{
int choice;

while(1)
{
ShowMenu();
printf("번호를 선택하세요: ");
scanf("%d", &choice);

switch(choice)


{
case 1 :
printf("학번을 입력하세요: ");
scanf("%d", &s.number);

printf("이름을 입력하시오: ");
scanf("%s", s.name);

printf("학점을 입력하시오(실수): ");
scanf("%lf", &s.grade);

printf("학번: %d\n", s.number);
printf("이름: %s\n", s.name);
printf("학점: %f\n", s.grade);

break;

case 2 :

printf("학번: %d\n 이름: %s\n 학점: %f\n", (*p).number,(*p).name, (*p).grade);
break;

case 3 :
{
int grade[STUDENTS];
int sum= 0; //성적 합계를 저장할 변수 선언
int i, average;
for(i=0; i<STUDENTS; i++)
{
printf (학생 4명의 성적을 입력하시오");
scanf("%d",&grade[i]);


}

for (i=0; i<STUDENTS; i++)
sum += grade[i];

average =sum/STUDENTS;
printf("성적 평균=%d\n",average);

break;
}


}
}

return 0;
}

void ShowMenu(void)
{
printf("\n---------Menu--------\n");
printf(" 1. 성적 입력 \n");
printf(" 2. 성적 확인 \n");
printf(" 3. 성적 평균 \n");
printf("=--------------------\n\n");
}





성적 산출 프로그램을 배열 포인터 구조체를 사용해서 만들어오라는데

이게 실행은 되는데 1번 2번은 제대로 동작하는데 3번을 실행하면 강제종료 되네요

차라리 실행되기 전에 오류메세지가 출력되면 삽질이라도 해볼텐데 ..

뭐가 문제일까요?



그리고 1번에서 입력받은 성적 결과를

3번에서 4명의 성적+ 1번에서 입력받은 성적의 평균을 내도록 바꾸려면 어떡해야 할까요?

책에 있는 예제를 끌어다 쓰긴 했는데 c언어를 거의 몰라서 어떻게 바꿔야 될지 모르겠네요 ㅠ