medi.cpp

来自「′问题描述: 设 X[0:n-1]和 Y[0:n-1]为 2 个数组,每个数」· C++ 代码 · 共 60 行

CPP
60
字号
#include <iostream.h>
#include<fstream.h>
#include<iostream>

int Mid_Num(int x[],int y[],int n);

int main()
{
	int *X,*Y;
	int n,i,buf,MidNum;
	ifstream input("input.txt");
	ofstream output("output.txt");

	input>>n;//得到数组长度
	if(n<=0)
	{
		cout<<"没有写数组文件"<<endl;
		return 0;
	}
	X=new int[n]; //X数组指针动态分配空间
	Y=new int[n];
	cout<<" X[n]:"<<endl;
	for(i=0;i<n;i++)   //数组X
	{
		input>>buf;
		X[i]=buf;
		cout<<"X["<<i<<"] = "<<X[i]<<endl;
	}
	cout<<" Y[n]:"<<endl;
	for(i=0;i<n;i++)   //数组Y
	{
		input>>buf;
		Y[i]=buf;
		cout<<"Y["<<i<<"] = "<<Y[i]<<endl;
	}
    MidNum=Mid_Num(X,Y,n);
	cout<<"数组X和Y的中位数是:"<<MidNum<<endl;
	output<<MidNum<<endl;
	return 0;
}
int Mid_Num(int x[],int y[],int n)
{
	int *Xp,*Yp;
	if((x[n/2]==y[n/2])||(n/2==0))
		return x[n/2];
	else if(x[n/2]>y[n/2])
	{
		Xp=x;
		Yp=y+n/2;
	}
	else
	{
		Xp=x+n/2;
		Yp=y;
	}
	
	return Mid_Num(Xp,Yp,n/2);
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?