输入10个整数,将其中最小的数与第一个数对换,将最大的数与最后一个数对换。
写三个函数:1、输入10个整数
2、进行处理
3、输出10个数
#include "stdafx.h"
#include<iostream>
using namespace std;
int array[10],*p;
//第一个函数,输入数字
void shuru(int *p)
{
cout<<"请输入十个整数:"<<endl;
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个数,将其中最小的数与第一个对换,最大的数与最后一个对换
原文地址:http://blog.csdn.net/yanglize/article/details/48014201