⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 8.cpp

📁 编写一个程序
💻 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 + -