📄 merge.c
字号:
#include<stdio.h>
void merge(int sr[],int tr[],int i,int m,int n)
{
int j,k;
for(j=m+1,k=i;i<=m && j<=n;++k)
{
if(sr[i]<sr[j])tr[k]=sr[i++];
else tr[k]=sr[j++];
}//for
if(i<=m)
while(i<=m){
tr[k++]=sr[i++];
}//while
if(j<=n)
while(j<=n){
tr[k++]=sr[j++];
}//while
}//merge
void msort(int sr[],int tr1[],int s,int t)
{
int tr2[100];
int m;
if(s==t)
tr1[s]=sr[s];
else{
m=(s+t)/2;
msort(sr,tr2,s,m);
msort(sr,tr2,m+1,t);
merge(tr2,tr1,s,m,t);
}//else
// return msort;
}//msort
void main()
{
int i,k,x,num1,num2,num3,num4;
int a[100],b[100],c[200],d[200];
printf("请输入那个特定的整数:\n");
scanf("%d",&x);
printf("请输入您所需要比较的数组的长度:\n");
scanf("%d",&k);
printf("请输入您所需要比较的数组:\n");
for(i=1;i<=k;i++)
{
scanf("%d",&a[i]);
}
for(i=1;i<=k;i++)
{
b[i]=x-a[i];
c[i]=b[i];
}
for(i=k+1;i<=2*k;i++)
{
c[i]=a[i-k];
}
msort(c,d,1,2*k);
// for(i=1;i<=2*k;i++)
// printf("%d ",d[i]);//之前的mergesort没有错误
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -