#include <stdio.h>
#define LISTSIZE 100
typedef int Datatype;
typedef struct
{
Datatype data [LISTSIZE];
int length;
}Seplist;
void init(Seplist *s);
void Length(Seplist *s);
void Bobblesort(Seplist *s);
int main(int argc, const char * argv[])
{
//4.3冒泡排序
/*从键盘上接收些数(整型),存入一个线性表中,然后用冒泡排序法重新排序并输出。
*/
Seplist arr;
init(&arr);
Length(&arr);
Bobblesort(&arr);
return 0;
}
void init(Seplist *s)//初始化
{
s->length=0;
}
void Length(Seplist *s)
{
int number;
printf("请输入元素的个数<100:");
scanf("%d",&number);
s->length=number;
for (int i=0; i<number; i++)//接收元素的个数。
{
printf("请输入第%d个元素:\n",i+1);
scanf("%d",&s->data[i]);
}
for (int i=0; i<number; i++)//打印接收的元素。
{
printf("%d\t",s->data[i]);
}
printf("\n");
}
void Bobblesort(Seplist *s)//冒泡排序 从大到小排序
{
int flag=0;
for (int i=1; i<s->length; i++)
{
for (int j=0; j<s->length-i; j++)
{
if (s->data[j]<s->data[j+1])
{
int temy=s->data[j];
s->data[j]=s->data[j+1];
s->data[j+1]=temy;
flag=1;
}
}
}
if (!flag)
{
return;
}
for (int i=0; i<s->length; i++)
{
printf("%d\t",s->data[i]);
}
}