十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
void f(A c) /* 注意:c结构变量名 但这个c也是个复制品,与原实参只是一样的内容,却不是同一个!! */ 所以结果还是a={1,2}; 答案为B
创新互联是一家专注网站建设、网络营销策划、微信小程序、电子商务建设、网络推广、移动互联开发、研究、服务为一体的技术型公司。公司成立十余年以来,已经为上千多家成都户外休闲椅各业的企业公司提供互联网服务。现在,服务的上千多家客户与我们一路同行,见证我们的成长;未来,我们一起分享成功的喜悦。
STU f (STU a)
{ STU b={"Zhao", 'm', 85, 90};
int i;
strcpy( a.name, b.name );
a.sex = b.sex;
for ( i=0; i2; i++ ) a.score[i] = b.score[i];
以上是将b中的数据赋值给a,相当于a=b;这样的一个操作
return a;
}
main()
{ STU c= { "Qian", 'f', 95, 92 }, d;
d = f(c);//这里传的c是个复制品(传递的不是结构体指针),所以c不会变,d接收f()函数的返回值,因为返回值的内容是f()中的b的值,所以,d与c不同
printf ("%s,%c,%d,%d, ", d.name, d.sex, d.score[0], d.score[1]);
printf ("%s,%c,%d,%d\n", c.name, c.sex, c.score[0], c.score[1]);
}
输出结果为:A) Zhao,m,85,90, Qian,f,95,92
# includestdio.h
# includemalloc.h
struct stu //结构体
{
int age;
float score;
char name[100];
};
void shuru (int len, stu * pArr)
{
int i;
for(i = 0; ilen; i++)
{
printf("请输入第%d个学生的信息\n",i+1);
printf("name = ");
scanf("%s",pArr[i].name);
printf("age = ");
scanf("%d", pArr[i].age);
printf("score = ");
scanf("%f", pArr[i].score);
}
return;
}
int main(void)
{
int len ,i;
struct stu * pArr,t;
printf("请输入学生的个数:\n");
printf("人数= ");
scanf("%d",len);
pArr = (struct stu *)malloc(len * sizeof(struct stu));
shuru(len, pArr);
for(i=0; ilen; i++)
{
if(pArr[i].score pArr[i+1].score)
{
t = pArr[i+1];
pArr[i+1] = pArr[i];
pArr[i] = t;
}
}
i =0;
printf("\n\n排序后的学生信息为\n\n");
for(i=0; ilen; i++)
{
printf("name = %s\n",pArr[i].name);
printf("age = %d\n",pArr[i].age);
printf("score = %f\n",pArr[i].score);
printf("\n\n");
}
return 0;
}
这样就行了,你的排序还没实现, 仿照输入的函数实现就OK