구조체 포인터 질문드립니다.
다빈
질문 제목 : 추가로 세명의 성적을 비교해서 낮은 순서대로 출력하고 싶습니다.
또 성적을 출력하는 부분에서 제데로 숫자가 나오지 않습니다.
질문 내용 :
#include stdio.h
#include stdlib.h
typedef struct _student{
int num;
char name[20];
double grade;
} student;
void swap(student *a,student *b);
int main()
{
int i,temp;
student *s1, *s2, *s3;
student *a[3];
a[0]=s1;
a[1]=s2;
a[2]=s3;
s1=(student *)malloc(sizeof(s1));
s2=(student *)malloc(sizeof(s2));
s3=(student *)malloc(sizeof(s3));
printf(학생1 학번:);
scanf(%d,&s1-num);
printf(학생1 이름:);
scanf(%s,s1-name);
printf(학생1 성적:);
scanf(%.2f,&s1-grade);
printf(학생2 학번:);
scanf(%d,&s2-num);
printf(학생2 이름:);
scanf(%s,s2-name);
printf(학생2 성적:);
scanf(%.2f,&s2-grade);
printf(학생3 학번:);
scanf(%d,&s3-num);
printf(학생3 이름:);
scanf(%s,s3-name);
printf(학생3 성적:);
scanf(%.2f,&s3-grade);
for(i=0;i2;i++)
{
if(a[i]-gradea[i+1]-grade)
swap(a[i],a[i+1]);
}
for(i=0;i3;i++)
{
printf(%d,a[i]-num);
printf(%s,a[i]-name);
printf(%.2f,a[i]-grade);
}
return 0;
}
void swap(student *a,student *b)
{
student *temp;
temp=a;
a=b;
b=temp;
}