你就不用函数,把上面要用函数的地方全部换成函数的实现代码。
Fight to win or die...
根据你说的功能 我写的程序如下!
// maxinorder.cpp : Defines the entry point for the console application.
//
#include <iostream>
#define COUNT 5
void inDECorder(int* pData,bool jiang);
int main()
{
int data[COUNT];
cout<<"input data------------------------------------------------------"<<std::endl;
for(int i=0;i<COUNT;i++)
{
cout<<"input data "<<i + 1<<" "<<std::endl;
cin>>data[i];
}
inDECorder(data,true);
cout<<"所有的降序排列如上所示"<<endl;
//下面将反转data数组 并将反转结果保留在rdata中
int rdata[COUNT];
for(int i=0;i<COUNT;i++)
{
rdata[i] = data[COUNT-i-1];
}
//对反转后的数据来求降序就得到原数据的升序
inDECorder(rdata,false);
cout<<"所有的升序如上所示"<<endl;
return 0;
}
void inDECorder(int* pData,bool jiang)
//参数解释pData原数据指针,jiang标志是否用该函数得到降序的输出结果
{
//cout<<pData[2]<<endl; //test code
int counter = 0;
int temp[3] = {0,0,0};
for(int i = 0;i < COUNT - 2;i++)
{
temp[0] = pData[i];
for(int j = i+1; j < COUNT - 1;j++)
{
if(pData[i] > pData[j]) //如果找到第二个数据就存储到临时数组中
{
temp[1] = pData[j];
for(int k = i+1; k < COUNT;k++)
{
if(pData[j] > pData[k])
{
temp[2] = pData[k];
counter++;
if(jiang) //根据标志变量来得到输出的顺序是否逆向
{
cout<<temp[0]<<"\t"
<<temp[1]<<"\t"
<<temp[2]<<endl;
}
else
{
cout<<temp[2]<<"\t"<<temp[1]<<"\t"<<temp[0]<<endl;
}//if
}//if inner
}//for 3
temp[1] = 0;//记得清零哦
}//if outer
}//for 2
}//for 1
cout<<"总数"<<"\t"<<counter<<endl;
}
时间就是生命是我的追求