读书人

如何输出的值感觉像地址啊

发布时间: 2013-01-01 14:04:20 作者: rapoo

怎么输出的值感觉像地址啊!
#include <stdio.h>
#define M 6
struct Node
{
int key;
};
struct arry
{
Node a[M+1];
};
void create()
{
arry p;
p.a[1].key=1; p.a[2].key=3; p.a[3].key=5; p.a[4].key=2; p.a[5].key=12; p.a[6].key=6;
}
void DubleBubble()
{
int b=1;
arry p;
int temp;
int i=0,j=0;
while(b)
{
b=0;
for(i=1;i<6;i++)
if(p.a[i].key>p.a[i+1].key)
{
temp=p.a[i].key;
p.a[i].key=p.a[i+1].key;
p.a[i+1].key=temp;
}
for(j=6;j>1;j--)
if(p.a[j].key<p.a[j-1].key)
{
temp=p.a[j].key;
p.a[j].key=p.a[j-1].key;
p.a[j-1].key=temp;
b=j-2;
}
}
}
void print()
{
int i=0;
arry p;
for(i=1;i<=6;i++)
printf("%d\t",p.a[i].key);
printf("\n");
}
void main()
{
create();
DubleBubble();
print();
}
[解决办法]


#include <stdio.h>
#define M 6
struct Node
{
int key;
};
struct arry
{
struct Node a[M+1];
};
struct arry p;
void create()
{
p.a[1].key=1; p.a[2].key=3; p.a[3].key=5; p.a[4].key=2; p.a[5].key=12; p.a[6].key=6;
}
void DubleBubble()
{
int b=1;
int temp;
int i=0,j=0;
while(b)
{
b=0;
for(i=1;i<6;i++)
if(p.a[i].key>p.a[i+1].key)
{
temp=p.a[i].key;
p.a[i].key=p.a[i+1].key;
p.a[i+1].key=temp;
}
for(j=6;j>1;j--)
if(p.a[j].key<p.a[j-1].key)
{
temp=p.a[j].key;
p.a[j].key=p.a[j-1].key;
p.a[j-1].key=temp;
b=j-2;
}
}
}
void print()
{
int i=0;
for(i=1;i<=6;i++)
printf("%d\t",p.a[i].key);
printf("\n");
}
void main()
{
create();
DubleBubble();
print();
}

[解决办法]
变量是否作用域的
还有,数组的索引是从0开始的

读书人网 >C++

热点推荐