作业帮 > 综合 > 作业

您为我写的从A、B数列中删除相同数的算法

来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/11/13 19:30:19
您为我写的从A、B数列中删除相同数的算法
我的Turbo C不能显示中文.请问你的可以么?
还有就是我输入了1 2 3 4 5 6 7 8 9 0
1 2 3 4 11 12 13
显示了
2 4 6 8 9 0
您为我写的从A、B数列中删除相同数的算法
#include <stdio.h>
#define MAXN 10   /*数列的最大个数*/
int InputArr(char name,int *x)
{ int i,count;
 printf("%c sequence of size :",name);
 scanf("%d",&count);
 printf("Please enter %c series of elements, A total of %d elements:",name,count);
 for(i=0;i<count;i++)
  scanf("%d",x+i);
 return count;
}
void DelArrAt(int *x,int *pn,int pos)
{ int i;
 for(i=pos;i<*pn-1;i++)
  x[i]=x[i+1];
 *pn=*pn-1;
}
int DelFromArr(int *x,int *pn,int y)
{ int i;
 for(i=0;i<*pn;i++)
  if(x[i]==y)
  { DelArrAt(x,pn,i);
   return 1;
  }
 return 0;
}
void PrtArr(char name,int *x,int n)
{ int i;
 printf("%c sequence:",name);
 for(i=0;i<n;i++)
  printf("%d ",x[i]);
 printf("\n");
}
main()
{
 int a[MAXN],b[MAXN],n,m,i;
 char aTag[MAXN]={0};
 n=InputArr('A',a);
 m=InputArr('B',b);
 for(i=0;i<n;i++)
  if(DelFromArr(b,&m,a[i]))aTag[i]=1;
 for(i=n-1;i>=0;i--)
 {  if(aTag[i])DelArrAt(a,&n,i);
 }
 PrtArr('A',a,n);
 PrtArr('B',b,m);
}