c2109 오류 질문입니다! 해결해주세요
딥자두
질문 제목 :
c2109 오류 질문입니다!
error C2109: 첨자는 배열 또는 포인터 형식을 사용해야 합니다.
라는 오류가 뜹니다.. 해결책을 알려주세요!질문 내용 :
#include stdio.h
struct grade
{
char name[10];
int id, kor, math, eng;
float sum,avg,rank;
};
int strcmp(const char *,const char *);
void main()
{
int i,n,k,num,find_id,pos,tmp;
char find_name[10];
struct grade student[4];
printf(학번,이름,국어점수,수학점수,영어점수를 입력하시오\n);
for(i=0;i4;i++)
{
scanf(%s%d%d%d%d,student[i].name,&student[i].id,&student[i].kor,&student[i].math,&student[i].eng);
}
for(i=0;i4;i++)
{
student[i].sum = student[i].kor + student[i].math + student[i].eng;
student[i].avg = student[i].sum / 4;
}
/*성적순으로 정렬*/
for(i=0;i4;i++)
{
pos = i;
for(k=i+1;k4;k++)
{
if(student[i].sum[pos]student[i].sum[k])
{
pos = k;
}
tmp = student[i].sum[i];
student[i].sum[i] = student[i].sum[pos];
student[i].sum[pos] = tmp;
}
}
printf(\n);
printf(0. 프로그램 종료\n);
printf(1. 학번을 입력 받아 해당 학생 정보 출력\n);
printf(2. 이름을 입력 받아 해당 학생 정보 출력\n);
printf(3. 학번 순으로 정렬한 후 출력\n);
printf(4. 이름 순으로 정렬한 후 출력\n);
printf(5. 전체 등수로 정렬한 후 출력\n);
printf(\n);
printf(번호를 입력하시오 : );
fflush(stdin);
scanf(%d,&num);
while(num != 0)
{
if(num == 1)
{
printf(찾고자 하는 학생의 학번을 입력하시오 : );
scanf(%d,&find_id);
for(i=0;i4;i++)
{
if(student[i].id == find_id)
{
printf(이름 : %s, 학번 : %d, 국어점수 : %d, 수학점수 : %d, 영어점수 : %d, 총점 : %f, 평균 : %f, 등수 : %f,student[i].name,student[i].id,student[i].kor,student[i].math,student[i].eng,student[i].sum,student[i].avg,student[i].rank);
}
}
break;
}
else if(num == 2)
{
printf(찾고자 하는 학생의 이름을 입력하시오 : );
scanf(%s,&find_name);
for(i=0;i4;i++)
{
if(strcmp(student[i].name,find_name)==0)
{
printf(이름 : %s, 학번 : %d, 국어점수 : %d, 수학점수 : %d, 영어점수 : %d, 총점 : %f, 평균 : %f, 등수 : %f,student[i].name,student[i].id,student[i].kor,student[i].math,student[i].eng,student[i].sum,student[i].avg,student[i].rank);
}
}
break;
}
scanf(%d,&num);
}
return;
}
위의 빨간색으로 된부분처럼 성적순으로 정렬을 해볼려고하는데error C2109: 첨자는 배열 또는 포인터 형식을 사용해야 합니다.라는 오류가 뜹니다.해결책좀 제시해주십시오~
-
외국녀
구조체를 쓰셧구나. 대충 훏어 봐서 그걸 못봤네요. ㅎㅎ