C语言,用结构体编写冒泡排序

来源:百度知道 编辑:UC知道 时间:2024/05/13 16:08:50
要2个程序,一个是自己输入数然后排,一个是规定了数然后排...谢谢.
C语言结构体的

struct Student
{
int ID;
char Name[10];
};

void sort(Student *a, int n)
{
Student t;
int i, j;
for(i=0;i<n;i++)
for(j=0;j<n-i;j++)
if(a[j].ID>a[j+1].ID)
{
memcpy(&t, &a[j], sizeof(Student));
memcpy(&a[j], &a[j+1], sizeof(Student));
memcpy(&a[j+1], &t, sizeof(Student));
}
}
在结构体赋值中,上面使用memcpy函数,如:
memcpy(&t, &a[j], sizeof(Student));
可以替换为:
t.ID = a[j].ID;
strcpy(t.Name, a[j].Name);
依次类推。

用结构体干啥?
用纯数组就够了。结构体还增加编程复杂度。。只要会了冒泡,就不会怕什么结构体不结构体的了。

for(i=0;i<n;i++)
for(j=0;j<n-i;j++)
if(a[j]>a[j+1])
{t=a[j];a[j]=a[j+1];a[j+1]=t;}