求一段C语言程序,主要是比较两个数据组。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求一段C语言程序,主要是比较两个数据组。相关的知识,希望对你有一定的参考价值。

1、有一个数据组或者是数据文件A=a c e g i;b d f h a;s t e h k;……共有m组数据,且每组数据都由五个字母组成;
2、有另一个数据组或者是数据文件B=(a c e g i;b d f h j;s t d g n;……)共有n组数据,且每组数据都由五个字母组成;
3、m>n;
要求:比较A与B中的数据组,若A中的有一组数与B组中任一组数中的4个数据相同,则从A中将该组数删除;最后显示A。

#include<stdio.h>
#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=0;j<num-1;j++)

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!=NULL;p=p->next)

for(q=x2;q!=NULL;q=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
参考技术A 工程浩大,要时间 参考技术B ===看答案

以上是关于求一段C语言程序,主要是比较两个数据组。的主要内容,如果未能解决你的问题,请参考以下文章

求一段python程序,定义一个函数,输入为两个list,return是两个list的交集和并集。 求高手解答

c语言中使用指针求一组数组的最小值!只要最小值!!

求一段C小程序关于度分秒.转换

求一段C++程序,要求从文本当中分行读取数据,按行求和并输出。

菜鸟求一段简单的C++的GDI+程序代码

C语言数组比较求最小值