输入10个数,将其中最小的数与第一个对换,最大的数与最后一个对换

输入10个整数,将其中最小的数与第一个数对换,将最大的数与最后一个数对换。

写三个函数:1、输入10个整数

                        2、进行处理

                        3、输出10个数


#include "stdafx.h"
#include
using namespace std;


int array[10],*p;

//第一个函数,输入数字
void shuru(int *p)
{
cout<<"请输入十个整数:"<for(int i=0;i<10;i++)
{
cin>>*(p+i);       //输入10个数,每输入一个数,遍将它放到地址(p+i)里
}
}

//第二个函数,进行处理
void chuli(int *p)
{
int *max,*min,*b;
int t;
min=p;        //使指针min与指针p指向同一个位置
max=p;          //使指针max与指针p指向同一个位置
b=p;          //使指针b与指针p指向同一个位置
for(int j=1;j<10;j++)          

if(*min>*(b+j))         //这里比较的是指针指向的数
{
min=b+j;        //这里改变的是指针指向
}
}
t=*min;     
*min=*p;
*p=t;        //交换两个指针指向的数的位置,使最小的数与第一个数交换位置

 
b=p;      //上次运算改变了b指针的指向,所以这里重置b指针的指向
for(int l=1;l<10;l++)
{
if(*max<*(b+l))
{
max=b+l;
}
}
t=*max;
*max=*(p+9);       //使最小的数与最后一个数交换位置
*(p+9)=t;
}

//第三个函数,输出重排序后的数
void shuchu(int *p)
{
for(int k=0;k<10;k++)
{
cout<<*(p+k)<<" ";
}
}


int _tmain(int argc, _TCHAR* argv[])
{
p=array;     //这里使p指向数组array,这时p表示指向a[0],p+1指向a[1]…………
shuru(p);
chuli(p);
shuchu(p);

return 0;
}


如果定义了一个指针,那么程序中p表示指针指向,*p表示指针指向的地址里存放的那个数。

你可能感兴趣的:(输入10个数,将其中最小的数与第一个对换,最大的数与最后一个对换)