|
输入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表示指针指向的地址里存放的那个数。 |