求一段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<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的交集和并集。 求高手解答