程序无法执行,求大神指教

眉眼盈盈处 2014-03-20 02:50:13
#include <stdio.h>
#include <iostream.h>
#define MAXSIZE 100
typedef int ElemType;
typedef struct
{
ElemType data[MAXSIZE];
int length;
}Sqlist;


void InitList(Sqlist &L) //初始化设置
{
L.length=0;
}

void CreatSqlist(Sqlist &L,int n) //建立顺序储存链表
{
int i;
for(i=0;i<n;i++)
scanf("%d",&L.data[i]);
L.length=n;
fflush(stdin);
}

void Output(Sqlist &L) //输出顺序表L
{
int i;
for(i=0;i<L.length;i++)
printf("%5d",L.data[i]); //每个数据占5列
printf("\n");

}


int Empty(Sqlist L) //判断空链表
{
if(L.length==0) return 1;
else return 0;
}


int Insert (Sqlist &L,ElemType x,int i)
{
int k;
if(i<0||i>L.length||L.lenght==MAXSIZE)
return 0;
else
{
for (k=L.length ;k>=i;k--)
L.data[k]=L.data[k-1];
L.data[i]=x;
L.length=L.length+1;
}
return 1;
}


int Delete(Sqlist &L,int i)
{
int k;
if(i<0||i>=L.length)
return 0;
else
{
for(k=i;k<L.length;k++)
L.data[k]=L.data[k+1];
L.length--;
}
return 1;
}


void Merge(Sqlist a,Sqliat b,Sqlist &c)
{
int i=0,j=0,k=0;
while(i<a.length)
{
c.data[k]=a.data[i];
i++;k++;

}
while(j<b.length)
{
c.data [k]=b.data[j];
j++;k++

}

}

void Output()
{
int i;
for (i=0;i<10;i++)
printf(" ");
for (i=0;i<32;i++)
printf("*");
printf("\n");
}

void mainpp()
{
int i;
output();
for (i=0;i<10;i++) printf(" "); printf ("* ");
printf("1.建立一个顺序表");
for (i=0;i<10;i++) printf(" "); printf ("* "); printf("\n");
for (i=0;i<10;i++) printf(" "); printf ("* ");
printf("2.输出一个顺序表");
for (i=0;i<10;i++) printf(" "); printf ("* "); printf("\n");
for (i=0;i<10;i++) printf(" "); printf ("* ");
printf("3.插入一个元素");
for (i=0;i<2;i++) printf(" "); printf ("* "); printf("\n");
for (i=0;i<10;i++) printf(" "); printf ("* ");
printf("4.删除一个元素");
for (i=0;i<2;i++) printf(" "); printf ("* "); printf("\n");
for (i=0;i<10;i++) printf(" "); printf ("* ");
printf("5.将两个顺序表合并");
for (i=0;i<8;i++) printf(" "); printf ("* "); printf("\n");
for (i=0;i<10;i++) printf(" "); printf ("* ");
printf("0.退出");
for (i=0;i<8;i++) printf(" "); printf ("* "); printf("\n");
output();

}

void main()
{
int n,i,k=1,m,x;
Sqlist l,a,c;
InitList(l);
mainpp();
while(k)
{
printf("请选择0--5");
scanf("%d",&m);
getchar();
switch(m)
{
case 0: return;

case 1:{ printf("输入元素值,构建顺序表:\n");
printf("请输入顺序表元素个数: ");
scanf("%d",&n);
CreatSqlist(l,n);
Output(l);
break;
}
case 2:Output(l);printf("\n");break;
case 3:{ printf("输入要插入的元素的位置以及其值: ");
fflush(stdin);
scanf("%d",&i);
scanf("%d",&x);
Insert(l,x,i);
Output(l); //输出插入元素之后的链表
printf("\n");
break;
}
case 4:{ printf("输入要删除元素的位置: ");
fflush(stdin); //清除一个流
scanf("%d",&i);
Delete(l,i);
Output(l);
break;
}
case 5:{ InitList(la);
printf("输入第二个顺序表的元素个数: ");
scanf("%d",&m);
CreatSqlise(la,m);
Output(la);
Merge(l,la,lc);
printf("输出合并后顺序表中的元素:\n");
Output(lc);
break;
}
default:return;

}
printf("继续? yes(1)/no(0): ");
scanf("%d",&k);
if(!k) return;
}
}
...全文
给本帖投票
158 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
简单的低级钩子做的应用实例,实现了开机自动启动功能,程序启动后在后台运行,等待本地QQ启动后,开启钩子,记录键盘输入的字符,并保存在D:盘目录下的指定名文档中。关闭QQ时,钩子自动卸载并结束进程。 但是由于是使用的键盘钩子,所以只能简单的抓取键盘所键入的内容,如果是汉字的话则无法显示。 由于使用了Hook技术,并对注册表进行了修改,使用前请关闭360等防火墙软件,并使用管理员模式运行。 一次执行后,之后再次开机时,该程序会自动启动。 程序尚有缺陷,如内存泄漏,究其原因是CString应用在多线程中导致,但至今未查到根源所在,希望大神指教,学生不胜感激! 也希望各位多提出宝贵意见,或对本程序进行开发改造。 个人暂时希望改造的几个方面: 1.首先是希望能够屏蔽掉360等防火墙的检查。更深层次的改造,希望能够主动杀死360等防火墙的进程。 2.其次是希望能够做成主辅进程相互监视的模式,主进程down掉后,辅进程自动能把主进程启动,辅助进程down掉后,主进程能把辅进程自动启动。 3.其次是希望能够做成真正的隐藏进程的风格,就是能够在任务管理器中隐藏掉进程,其实可以做成服务,但是更希望能够以进程的形式存在。 4.然后很重要的是,希望能够做成自动获取管理员权限的类型,这个一直很想做,但是小菜我水平有限,暂时未对应。 5.希望对应网络开发,现在用钩子钩下来的文字,暂时只是保存在本地的一个txt文件中,希望最终实现把抓下来的内容发送到指定邮箱这样的功能。 暂时就先想到这么多吧,希望大家多多提出宝贵意见。 (最终声明:本程序只限用于研究学习开发技术,不得用于研究学习以外的任何目的) 作者:Benjamin Wang 2013-12-02

3,882

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧

手机看
关注公众号

关注公众号

客服 返回
顶部