📄 8.cpp
字号:
#define MAXSIZE 50
#define KEYTYPE int
#include <stdio.h>
#include <string.h>
// 爱悠游 www.aiyoy.com bbs.aiyoy.com
//有问题? 来 爱悠游计算机技术讨论区:http://www.aiyoy.com/bbs/forumdisplay.php?fid=39
typedef struct
{
KEYTYPE key;
char name[8];
int score;
}RECNODE;
int MakeList(RECNODE *r)
{
int j,k,sco;
char nam[8];
printf("\n\n输入初始数据(每个数据以空格隔开,-1结束):");
k=0;
scanf("%d",&j);
while(j!=-1)
{
scanf("%s",nam);
scanf("%d",&sco);
k++;
r[k].key=j;
strcpy(r[k].name,nam);
r[k].score=sco;
scanf("%d",&j);
}
return k;
}
void UndealoutList(RECNODE *r,int n)
{
int i;
printf("\n未排序前的数据:\n");
for(i=0;i<n;i++)
printf(" %d\t%s\t%d\n",r[i+1].key,r[i+1].name,r[i+1].score);
printf("\n\n");
}
void DealoutList(RECNODE *r,int n)
{
int i;
printf("\n排序后的数据:\n");
for(i=0;i<n;i++)
printf(" %d\t%s\t%d\n",r[i+1].key,r[i+1].name,r[i+1].score);
printf("\n\n");
}
void InsertSort(RECNODE *r,int n)//直接插入
{
int i,j;
for(i=2;i<=n;i++)
{
r[0]=r[i];
j=i-1;
while(r[0].key<r[j].key)
{
r[j+1]=r[j];
j--;
}
r[j+1]=r[0];
}
}
void BinInsSort(RECNODE *r,int n)//折半插入
{
//程序填空①
}
void BubleSort(RECNODE *r,int n)//冒泡排序
{
//程序填空②
}
void SeleSort(RECNODE *r,int n)//简单选择排序
{
//程序填空③
}
void main()
{
RECNODE a[MAXSIZE];
int len,b;
int loop=1;
while(loop)
{
printf("\n各种排序算法及操作选项如下:");
printf("\n0--退出");
printf("\n1--直接插入排序");
printf("\n2--折半插入排序");
printf("\n3--冒泡排序");
printf("\n4--简单选择排序");
printf("\n请在上述序号中选择一个并输入:");
scanf("%d",&b);
printf("\n\n");
if(b>=0&&b<=6)
{
switch(b)
{
case 0:loop=0;break;
case 1:
len=MakeList(a);
UndealoutList(a,len);
InsertSort(a,len);
DealoutList(a,len);
break;
case 2:
len=MakeList(a);
UndealoutList(a,len);
BinInsSort(a,len);
DealoutList(a,len);
break;
case 3:
len=MakeList(a);
UndealoutList(a,len);
BubleSort(a,len);
DealoutList(a,len);
break;
case 4:
len=MakeList(a);
UndealoutList(a,len);
SeleSort(a,len);
DealoutList(a,len);
break;
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -