严版数据结构(c)算法2.1,请大家看看有什么错误

来源:百度知道 编辑:UC知道 时间:2024/05/27 15:29:09
#include<stdio.h>
typedef struct{
char a;
int b;
}stu;
stu x[10],y[5];
int n=0,m=0;
void init()
{
char aa;int bb;
printf("please input x:");
scanf("%c%d",&aa,&bb);
while(bb>=0 && bb<=9 && n<=10)
{
x[n].a=aa;x[n].b=bb;n++;
scanf("%c%d",&aa,&bb);
}
printf("please input y:");
scanf("%c%d",&aa,&bb);
while(bb>=0 && bb<=9 && m<=5)
{
y[m].a=aa;y[m].b=bb;m++;
scanf("%c%d",&aa,&bb);

}
}
void unionn()
{
for(int j=0;j<m;j++)
for(int i=0;i<n,n<=10;i++)
if(y[j].a!=x[i].a && y[j].b!=x[i].b)
{
x[n].a=y[j].a;x[n++].b=y[j].b;
}
}
void prt()
{
for(int i=0;i<n;i++)
printf("%c %d\n",&x[i].a,&x[i].b);
}
void main()
{
init();
unionn();
prt

我觉得你这思路不是太对吧!
要实现算法2.1,为什么要这样呢?

1.我觉得两个集合的合并用不到结构体,如果用顺序表实现的话。可能我没有理解你的意思!
2.你的结构体在初始化的时候有问题!
有机会我们可以多讨论讨论!~
#include <stdio.h>
void main(){
int a[10];//LA链表
int b[5];//LB链表
int p;
int n;
int m;
int i;
int j;
int k;
for (p=0;p<10;p++){
a[p]=0;
}
printf("请向数组a[]输入5个正整数(用空格分隔,回车结束):\n");
for (n=0;n<5;n++){
scanf("%d",&a[n]);
}
printf("请向数组b[]输入5个正整数(用空格分隔,回车结束):\n");
for (m=0;m<5;m++){
scanf("%d",&b[m]);
}
for (i=0;i<5;i++){
int same=0;
for (j=0;j<5;j++){
if (b[i]==a[j]){
same=1;
break;
}
}
if (same==0){
a[n]=b[i];
n++;
}
}
printf("合并结果为:\n");
for (k=0;k<10;k++){
if (a[k]!=0){
printf("%d\n",a[k]);
}
}<