满意的回答
ccjiabaobei
2016.04.13推荐
合格率: 56%等级: 12
帮助: 8921人
#包含
结构人员
{
char name[10];
int num;
(;
void main () )
{
struct person per[5];
voidsort(structPerson*,int );
int i;
打印薄片3360 (n );
for(I=0; i5; I )
{
打印(name : );
scanf('%s ',per[i].name );
printf(num: );
scanf('%d ',per[i].num );
}
sort(per,5 );
for(I=0; i5; I )
printf(print:%s%d(n ),per[i].name,per[i].num );
getch (;
}
voidsort(structperson*a,int n ) ) ) ) ) ) ) ) ) ) voidsort(structperson*a,int n ) ) )
{
int i,j,t;
for(I=0; I
for(j=0; Jj
if(a(I ).numa ) (j ).num ) )。
{
t=a[i].num; /*在你的代码中I写着j,这是个细节问题*/
a[i].num=a[j].num;
a[j].num=t;
}
}
你的代码有点问题。 我帮你修好了。 TC测试通过了。
除了关注的地方,还有几个需要注意的地方:
您的源代码正在发送per[0].num的地址。 请记住a[0]。 但是,a[1]的地址不相等
per[1].num的地址。
我不能理解指针加1的意思。
列席。
int a[10];
那么,*(a1 )的意思是将a地址移动到sizeof(int )的后面。
所以你的那个a[1]指向的还是结构体中的数据。 嗯,这里体现了低级语言的特性。 每个存储器的每一位都必须考虑。 通过编写程序,200位浮点数加法计算机考虑到各位的内存,调试时更能体会到一个内存需要一次运算。 代码在我的baidu空间里,你可以自己去看)
不明白的问题
00共享通报