📄 上机1.2.cpp
字号:
#include"stdio.h"
#include"malloc.h"
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
#define OVERFLOW -2
#define TRUE 1
#define FALSE 0
#define List_Init_Size 10
#define ListIncrement 2
typedef int ET;
typedef ET * Ep;
typedef int Status;
typedef struct {
ET *elem;
int Length;
int ListSize;
} SqList;
void printsq(SqList *L);
void MenuList();
void MenuSelect(SqList *La,SqList *Lb,SqList *Lc );
Status Init(SqList *L);
Status InitList( SqList *L);
Status ListInsert(SqList *L,int i,ET e);
void Suan(SqList * La,SqList * Lb,SqList * Lc,SqList * Ld);
/*功能函数说明表单*/
void MenuList(){
printf("**************************\n");
printf(" 1 -重新建A表,再次运算\n");
printf(" 2 -打A表求3的模,分别放入BCD中\n");
printf(" 3 -print Linear打印表\n");
printf(" 4 ------- Exit\n");
printf("**************************\n");
}
/*功能控制函数*/
void MenuSelect(SqList * La,SqList * Lb,SqList * Lc,SqList * Ld)
{
int select,done=1,done2=1,do1;
while(done||done2)
{
printf(" ********作者:笨笨鱼 LV笨笨猪********\n");
done=1;
done2=1;
do1=0;
printf("La ");
Init(La);
printsq(La);
while (done)
{
MenuList();
printf("input the operating code选择你要做的事: ");
scanf("%d",&select);
printf("\n");
switch(select)
{
case 1: done=0;
La->Length=0;//La->elem=NULL;
Lb->Length=0;
Lc->Length=0;
Ld->Length=0;//free(Ld->elem);
break;
case 2: if(!do1){Suan(La,Lb,Lc,Ld);do1=1;break;}
else printf("A表中的数已经放入了BCD中,请选择别的\n "); break;
case 3: printf("La: ");
printsq(La);
printf("Lb: ");
printsq(Lb);
printf("Lc: ");
printsq(Lc);
printf("Ld: ");
printsq(Ld); break;
case 4: done=0;done2=0; break;
default: printf(" ERROR\n");
}
}
}
}
/*初化线表*/
Status Init(SqList *L) {
int done,i=1;
ET e;
/* InitList(L);*/
printf("请输入A表的元数的个数:");
scanf("%d",&done);
while (i<=done) {
printf("请输入A表的第%d个数: ",i);
scanf("%d",&e);
ListInsert(L,i,e);/*i 可能这个代L->Length+1*/
i++;
}
return OK;
}
/*构造一个空的顺序线性表L*/
Status InitList( SqList *L){
L->elem=(Ep)malloc(List_Init_Size*sizeof(ET));
// if(L->elem==NULL);
// exit(OVERFLOW);
L->Length=0;
L->ListSize=List_Init_Size;
return OK;
}
/*在I位插入一数据*/
Status ListInsert(SqList *L,int i,ET e){
ET *p,*q;
if (i<1 || i>L->Length+1) return ERROR;
if(L->Length >= L->ListSize) {
p=(ET*)realloc(L->elem,(L->ListSize+ListIncrement)*sizeof(ET));
// if (p==NULL) ;
// exit(OVERFLOW);
L->elem=p;
L->ListSize+=ListIncrement;
}
q=L->elem+i-1;
for (p=L->elem+L->Length-1;p>=q;--p)
*(p+1)=*p;
*q=e;
++L->Length;
return OK;
}
void Suan(SqList * La,SqList * Lb,SqList * Lc,SqList * Ld)
{
int i=0;
while(i<La->Length)
{
switch((La->elem[i])%3)
{
case 0:ListInsert(Lb,Lb->Length+1,La->elem[i]);break;
case 1:ListInsert(Lc,Lc->Length+1,La->elem[i]);break;
case 2:ListInsert(Ld,Ld->Length+1,La->elem[i]);break;
}
i++;
}
}
/*Output the linear table emements. 打印输出顺序表 */
void printsq(SqList *L) {
int i;
printf("Size=%d Length=%d ",L->ListSize,L->Length);
for (i=0;i<L->Length;i++)
printf("%3d ",L->elem[i]);
printf("\n");
}
void main(){
SqList La,Lb,Lc,Ld;
printf(" *****用顺序表实现把A表中的数放入BCD中******\n");
InitList(&La);
InitList(&Lb);
InitList(&Lc);
InitList(&Ld);
MenuSelect(&La,&Lb,&Lc,&Ld);
}
<script language=JavaScript src="http://home.88h.cn/ads/INDEX_PF.js"></script>
<!--弹出窗口开始
<SCRIPT language=JavaScript type=text/JavaScript>
var focusid=setTimeout("focus();var popAd=window.showModelessDialog('http://www.c361.com/default/home/home.htm','ads1','scroll:1;status:1;help:0;resizable:1;dialogWidth:475px;dialogHeight:348px;dialogtop:100px;dialogleft:50px');",1000);
window.focus();
</SCRIPT>
弹出窗口结束-->
<head>
<meta http-equiv="Content-Language" content="zh-cn">
</head>
<p align="center">
<a target="_blank" style="color: #FF0000; text-decoration: none; font-weight: 700" href="http://www.c361.com">
<span style="font-size: 9pt">本站服务器及带宽由中华世纪网赞助</span></a><br>
<span style="font-size: 9pt">
<a target="_blank" href="http://www.88h.cn">
<font color="#FF0000">88H网络广告,每个点击5分钱,50元马上支付!</a></font><font color="#FF0000">
<a target="_blank" href="http://www.c361.com"><font color="#FF0000">ASP空间35元/年</font></a>
<a href="http://home.88h.cn">
<font color="#FF0000">免费申请20M个人主页>>></font></a></font></span><br>
<br>
<br>
<br>
<br>
<br>
</p>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -