struct
typedef struct
{
int num;
double grade;
} student;
typedef int (*AP5)[5];
AP5 ap1,ap2,ap3;
int (*)(int,int)func(int (*)(int,int),int(*)(int,int));//에러가남
->
int (* func(int (*)(int,int),int(*)(int,int)))(int,int);//이렇게 바꿈
->
typedef int (*FP)(int,int);
FP func(FP,FP);
->
typedef int FP(int,int);
FP * func(FP *,FP *);
////
int main()
{
student s1,s2,temp;
scanf(%d%lf",&s1.num,&s1.grade);
scanf(%d%lf",&s1.num,&s1.grade);
}
temp=s1;
s1=s2;
s2=temp;//만으로 연산가능!!!
//그외에도 &연산도 가능
////
swap_struct(&s1,&s2);//이것으로 대체도 가능
void swap_struct (student *sp1,student *sp2)
{
student temp;
temp=*sp1;
*sp1=*sp2;//포인터!!
*sp2=temp;
}
////
swap_struct(&s1,&s2);//이것으로 대체도 가능
void swap_struct(student *sp1,student *sp2)
{
//(*sp1).grade;
sp1->grade;//위의 것과 동일!!!
//좌측 구조체포인터변수!!
//우측 구조체 맴버명!!
//간접 맴버참조연산이라고 함//
student temp;
temp=*sp1;
*sp1=*sp2;//포인터!!
*sp2=temp;
}
/////
int main()
{
student sary[5];
//scanf(%d%lf",&sary[i].num,&sary[i]grade);//이것대신
student_input(sary);//함수로대체
return 0;
}
void student_input(student *sp)
{
int i;
for(i=0;i<5;i++)
{
scanf("%d", &sp[i].num);//
scanf("%lf", &sp[i].grade);//
}
}
//
int main()
{
student sary[5];
//scanf(%d%lf",&sary[i].num,&sary[i]grade);//이것대신
student_input(sary);//함수로대체
return 0;
}
void student_input(student *sp)
{
int i;
for(i=0;i<5;i++)
{
scanf("%d", &sp[i].num);//
scanf("%lf", &sp[i].grade);//
}
}