(注
*/
#include
void BubbleSort(int r[]
{//冒泡排序(有小到大)
int i
int exchange;
for(i=
{
exchange=
for(j=n
if(r[j+
{
k=r[j+
r[j+
r[j]=k;
exchange=
}
if(!exchange)
break;
}
}
int DisaSameYs(int r[]
{//消除數組r[]中的重復元素
int w
for(w=
{
for(x=w+
{
if(r[w]==r[x])
{
n
for(y=x;y<=n;y++)
{
r[y]=r[y+
}//endfor
x
}//endif
}//endfor
}//endfor
return n;
}
int cha(int m[]
{//求差集
int i=
int exch;
while(i<=Countaa)
{
exch=
for(j=
{//用集合的第一個元素分別和另一個集合的各元素相比較
//然後再用第二個元素(直到最後一個元素)和另一個集合的各元素相比較
if(m[i]==n[j])
{//如果相同
exch=
break;
}//endif
}//endfor
if(!exch)
{//如果沒有相同的就保存m[i]到l[]中
l[k]=m[i];
k++;
}
i++;
}//endwhile
return k;
}
/*
void testds(int r[]
{//測試消除數組中的重復元素的效果用下列循環輸出
int z;
for(z=
{
printf(
}
printf(
}
*/
void main()
{
int a[
int exchange=
int i
printf(
for(i=
{
scanf(
if(a[i]==
break;
}
CountA=i
BubbleSort(a
CountA=DisaSameYs(a
// testds(a
printf(
for(i=
{
scanf(
if(b[i]==
break;
}
CountB=i
BubbleSort(b
CountB=DisaSameYs(b
//testds(b
CountC=cha(a
printf(
for(i=
{
printf(
}
printf(
}
//////////////////////////////////////////////////////
//模式匹配
#include
#include
typedef struct{
// int ch[
char ch[
int length;
}SeqString;
int NaiveStrMatch(SeqString T
{
int i
int m=P
int n=T
for(i=
{
j=
while(j
{
k++;j++;
}
if(j==m)
return i;
}//endfor
return
}//NaiveStrMatch
SeqString CreatStr(SeqString R)
{
int i;
printf(
for(i=
{
// scanf(
// if(R
scanf(
if(!(strcmp(&R
break;
}
R
return R;
}
void main()
{
int n;
SeqString Str
Str
SeqString Str
Str
n=NaiveStrMatch(Str
printf(
}
/*
和集合B的一串整數(以
並以由小到大的次序輸出A與B的交集中的所有整數(輸入整數時
*/
//注意調試程序時要多輸入重復數據調試;本程序是根據青龍提供的程序改編
#include
#include
void BuCountbbleSort(int r[]
{//冒泡排序
int i
int exchange;
for(i=
{
exchange=
for(j=n
if(r[j+
{
k=r[j+
r[j+
r[j]=k;
exchange=
}
if(!exchange)
break;
}
}
int BingJi(int m[]
{//求集合的並集
int i=
while(i<=Countaa&&j<=Countbb)
{
if(m[i]
{//如果 m[i]
l[k]=m[i];
k++;
i++;
}//endif
else if(m[i]>n[j])
{//如果 m[i]>n[j]則取小的值n[j]
l[k]=n[j];
k++;
j++;
}//end elseif
else
{//如果 m[i]==n[j]
l[k]=m[i];
k++;
i++;
j++;
}//endelse
}//endwhile
if(i>Countaa)
{//如果i>Countaa
//則把n[j]中的剩余元素
while(j<=Countbb)
{
l[k]=n[j];
j++;
k++;
}//endwhile
}//endif
if(j>Countbb)
{//如果j>Countbb
//則把m[j]中的剩余元素
while(i<=Countaa)
{
l[k]=m[i];
i++;
k++;
}//endwhile
}//endif
return k;//返回生成的數組的元數個數
}//end BuCountbbleSort
int JiaoJi(int m[]
{//求集合的交集
///////////////////////////////////
//消除數組m[]中的重復元素
int w
for(w=
{
for(x=w+
{
if(m[w]==m[x])
{
Countaa
for(y=x;y<=Countaa;y++)
{
m[y]=m[y+
}//endfor
x
}//endif
}//endfor
}//endfor
/*
//測試消除數組中的重復元素的效果用下列循環輸出
int z;
for(z=
{
printf(
}
printf(
*/
//消除結束
///////////////////////////////////
///////////////////////////////////
//求交集
int i=
From:http://tw.wingwit.com/Article/program/sjjg/201311/23615.html