1.定义一个学生结构体,包含结构体成员:身高,姓名,成绩;定义一个结构体数组有7个成员,要求终端输入结构体成员的值,根据学生成绩,进行冒泡排序
#include <stdio.h>
#include <string.h>
typedef struct ste
{
int hight;
char name[10];
int score;
}ste,*ste_p;
int main(int argc, const char *argv[])
{
ste temp;
ste st[7]={{180,"aa"},{181,"bb"},{182,"cc"},{183,"dd"},{185,"ee"},{180,"ff"},{187,"gg"}};
for(int i=0;i<7;i++)
{
printf("请输入学生分数>>>");
scanf("%d",&st[i].score);
}
for(int i=0;i<7;i++)
{
for(int j=0;j<6-i;j++)
{
if(st[j].score<st[j+1].score)
{
temp=st[j];
st[j]=st[j+1];
st[j+1]=temp;
}
}
}
for(int i=0;i<7;i++)
{
printf("%d %s %d",st[i].hight,st[i].name,st[i].score);
putchar(10);
}
return 0;
}
//按位置插入
void insert_pos(seq_p L,datatype value,int pos)
{
if(L==NULL)
{
printf("入参是空\n");
return;
}
if(seq_full(L))
{
printf("不合理\n");
return;
}
if(pos>L->len||pos<0)
{
printf("位置不合理\n");
return;
}
for(int i=L->len;i>=pos;i--)
{
L->data[i]=L->data[i+1];
}
L->data[pos]=value;
L->len++;
}
//按位置删除
void del_pos(seq_p L,int pos)
{
if(L==NULL){return;}
if(seq_empty(L))
{
printf("无需删除\n");
return;
}
for(int i=pos;i<L->len;i++)
{
L->data[i] = L->data[i+1];
}
L->len--;
}
//顺序表去重
void del(seq_p L)
{
int temp;
if(L==NULL)
return;
if(seq_empty(L))
return;
if(L->len==1)
{
printf("只有一个元素\n");
return;
}
for(int i=0;i<L->len;i++)
{
for(int j=i+1;j<L->len;j++)
{
if(L->data[i]==L->data[j])
{
temp=L->data[i];
L->data[i]=L->data[len-1];
L->data[len-1]=temp;
L->len--;
}
}
}
}