#include
#include
#include
#include
#include
struct student {
char name[100];
float score;
int age;
};
int input(int , student *);
int output(int , student *);
int format(int , student *);
int main()
{
int len , i = 0 ;
struct student *PArry;
printf("Please input len : ");
scanf("%d" , &len) ;
PArry = (struct student *)malloc(sizeof(struct student)*len);
if(NULL == PArry) //判断内存是否分配成功
{
printf("Ram allocation fail !");
exit(1);
}
printf("size = %d\n" , sizeof(PArry));
printf("size1 = %d\n" , sizeof(int));
input(len,PArry);
free(PArry);
return 0;
}
int input(int j ,student *PA)
{
int i = 0 ;
printf("i = %d j = %d\n " ,i , j);
format(j , PA);
printf("\n\n");
output(j , PA);
}
int output(int j ,student *PAr)
{
int i = 0 ;
printf("\n***********************\nThe student message: \n");
for(i = 0 ; i < j ; ++i)
{
printf("j2 = %d\n : " , j);
printf("Num %d of students messgae: \n" , i + 1);
printf("Age: %d\n" , PAr[i].age);
printf("Score: %.2f\n" , PAr[i].score);
printf("Name: %s\n" , PAr[i].name);
printf("*********************\n\n");
}
return 0;
}
int format(int k , struct student *PAR)
{
int i = 0 ;
printf("\n");
fflush(stdin);
for(i = 0 ; i < k ; ++i)
{
printf("Please intput num %d Student Message : \n" , i + 1);
fflush(stdin);
printf("k = %d i = %d\n" , k , i);
printf("age = ");
while((scanf("%d" , &PAR[i].age)) != 1)
{
fflush(stdin);
printf("\n ");
printf(" Type Date Error , Please input again . \n");
printf("\n");
printf("age = ");
}
printf("Age = %d\n" , PAR[i].age);
printf("score = ");
fflush(stdin);
while((scanf("%f" , &PAR[i].score)) != 1)
{
fflush(stdin); printf("\n ");
printf(" Type Date Error , Please input again . \n");
printf("\n");
printf("score = ");
}
printf("score = %f\n" , PAR[i].score);
printf("name = ");
fflush(stdin);
while((scanf("%s", PAR[i].name)) != 1)
{
fflush(stdin);
printf("\n ");
printf(" Type Date Error , Please input again . \n");
printf("\n");
printf("name = ");
}
printf("name = %s\n" , &PAR[i].name );
fflush(stdin);
printf("\n\n");
}
}
追问
首先感谢你对着我的代码敲了一遍,辛苦了。我粘贴的时候显示都是图片上的格式,上传以后就不能正常显示了,我也很纠结,特意重发了一次,然后又百度了一次,没有解决方案,才有的截图的。
PArry = (struct student *)malloc(len * sizeof(struct student *));这一句有错误;
分配的内存是结构体指针类型;
你说这个地方有问题,那我该怎么改呢,谢谢,在线等!