
#include<stdlib.h>
#include<string.h>
typedef struct link
{
char a[6]
link *next
link *pre
}link
/*输入数据组的函数*/
void input(link *x,int num)
{
int i,j
printf("一组的数据:")
getchar()
gets(x->a)
x->pre=NULL
link *q=x
for(j=0j<num-1j++)
{
link *p=(link *)malloc(sizeof(link))
gets(p->a)
q->next=p
p->pre=q
q=p
}
q->next=NULL
}
/*输出*/
void output(link *x)
{
int i
link *p=x
printf("结果为:\n")
for(p!=NULL)
{
puts(p->a)
p=p->next
}
}
/*比较*/
link * compare(link *x1,link *x2)
{
link *bian1=(link *)malloc(sizeof(link))
link *bian2=(link *)malloc(sizeof(link))
link *p=x1
link *q=x2
for(p!=NULLp=p->next)
{
for(q=x2q!=NULLq=q->next)
{
if(strcmp(p->a,q->a)==0)
{
if((p->pre!=NULL)&&(p->next!=NULL))
{
bian1=p->pre
bian2=p->next
bian1->next=bian2
bian2->pre=bian1
}
else if(p->pre==NULL)
{
x1=x1->next
x1->pre=NULL
}
else
{
bian1=p->pre
bian1->next=NULL
}
}
}
}
return(x1)
}
void main()
{
link *x1=(link *)malloc(sizeof(link))
link *x2=(link *)malloc(sizeof(link))
int num1,num2
printf("输入第一组数据的个数:")
scanf("%d",&num1)
input(x1,num1)
printf("输入第二组数据的个数:")
scanf("%d",&num2)
input(x2,num2)
x1=compare(x1,x2)
output(x1)
}
这是输入样例及答案,你可以参考一下,按照我的输入格式来编辑你的输入数据测试:
输入第一组数据的个数:3
一组的数据:asdfg
qwert
zxcvb
输入第二组数据的个数:2
一组的数据:asdfg
zxcvb
结果为:
qwert
Press any key to continue
程序与数据原本没有任何区别,在内存中都只是以二进制形式存储的数据。
现在的理解是当CPU指向你这段数据的地址,并且运行它,那这些数据就成了程序,或者说指令,也就是被CS,IP指向了。
就像运行中的程序才能成为进程有类似的概念。
在国标《质量管理体系 基础和术语》GB/T19000—2008/ISO9000:2005中第3.4.5条 程序procedure中对于“程序”的定义进行了规定。
一个环节,内部嵌套着一系列复杂的列逻辑慎密的一个组件,如若一个地方出问题则会影响到整个主体(可以理解为事务)。
在中华人民共和国国家标准《质量管理体系 基础和术语》GB/T19000—2008/ISO9000:2005(代替GB/T19000—2000)中第3.4.5条 程序procedure中对于“程序”的定义是“ 为进行某项活动或过程(3.4.1)所规定的途径。”
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)