帮忙看一段C语言程序。。跟结构体有关的,调试的时候说string!=NULL,求改错!!
#include<stdio.h>structstudent{charnum[5],name[10];ints[4];doubleave;}*add;voidreadre...
#include<stdio.h>
struct student
{
char num[5],name[10];
int s[4];
double ave;
}*add;
void readrec(struct student *add)
{
int i,j;
for(i=0;i<3;i++)
{
gets(add[i].num);
gets(add[i].name);
add[i].ave=0;
for(j=0;j<4;j++)
{scanf("%d",&add[i].s[j]);add[i].ave+=add[i].s[j]/4.0;}
getchar();
}
}
void written(struct student *add)
{
int i,j;
for(i=0;i<3;i++)
{
printf("%s%s",(add+i)->name,(add+i)->num);
for(j=0;j<4;j++)
printf("%d",add[i].s[j]);
printf("%.1f\n",add[i].ave);
}
}
main()
{
readrec(add);
written(add);
} 展开
struct student
{
char num[5],name[10];
int s[4];
double ave;
}*add;
void readrec(struct student *add)
{
int i,j;
for(i=0;i<3;i++)
{
gets(add[i].num);
gets(add[i].name);
add[i].ave=0;
for(j=0;j<4;j++)
{scanf("%d",&add[i].s[j]);add[i].ave+=add[i].s[j]/4.0;}
getchar();
}
}
void written(struct student *add)
{
int i,j;
for(i=0;i<3;i++)
{
printf("%s%s",(add+i)->name,(add+i)->num);
for(j=0;j<4;j++)
printf("%d",add[i].s[j]);
printf("%.1f\n",add[i].ave);
}
}
main()
{
readrec(add);
written(add);
} 展开
2个回答
2011-08-08
展开全部
没分配空间
追问
0.0嗯…………怎么改呢?@~@
追答
struct student
{
char num[5],name[10];
int s[4];
double ave;
}*add=(student *)malloc(sizeof(student));
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询