#include
#include
struct stu{
char name[20];
int num;
int age;
char group;
float score;
}stus[5] = {{"Zhou ping", 5, 18, 'C', 145.0},
{"Zhang ping", 4, 19, 'A', 130.5},
{"Liu fang", 1, 18, 'A', 148.5},
{"Wang ming", 3, 17, 'B', 144.5} } ;
int main ()
{
struct stu*p=stus;
int j;
char name[20];
int pjf ( struct stu w[],int i );
int charu ( struct stu a[3]);
int shang ( struct stu *a);
pjf (stus,5);
(p+4)[0]=(p+3)[0];
charu(stus);
printf(" \n");
for(j=0;j<5;j++)
{
printf("%s,%d,%d,%c,%7.2f\n",p[j].name,p[j].num,p[j].age,p[j].group,p[j].score);
}
printf(" \n");
shang (stus);
for(j=0;j<4;j++)
{
printf("%s,%d,%d,%c,%7.2f\n",p[j].name,p[j].num,p[j].age,p[j].group,p[j].score);
}
return 0;
}
int pjf ( struct stu w[],int i )
{
int sum=0;
for(i=0;i<5;i++)
{
sum+=w[i].score;
}
printf ("平均分是 %7.2f\n",sum/4.0);
return 0;
}
int charu ( struct stu a[3])
{
printf("请输入一条记录 姓名,学号,年龄,小组,成绩 (逗号隔开)\n");
scanf("%s,%d,%d,%c,%f",a[3].name,a[3].num,a[3].age,a[3].group,a[3].score);
return 0;
}
int shang ( struct stu *a)
{
(a+2)[0]=(a+3)[0];
(a+3)[0]=(a+4)[0];
return 0;
}
圈出的就是问题所在,为什么原来的数值还在,跪求大神