[CODE]#include<iostream>
using namespace std;
int main()
{
const int max=10;
int a[max];
int *p=a;
int i,j,value1,value2;
int index1=0,index2;
cout<<"Enter the array number:";
for(i=0;i<max;i++)
{
cin>>*(p+i);
}
value1=*p;
value2=*p;
for(i=1;i<max;i++){
if(value1<*(p+i)){
value1=*(p+i);
index1=i;
}
}
for(j=1;j<max;j++){
if(value2>*(p+j)){
value2=*(p+j);
index2=j;
}
}
cout<<value1<<' '<<value2<<endl;
for(i=index1;i>0;i--){
*(p+i)=*(p+i-1);
*(p+i-1)=value1;
}
for(j=index2;j<max;j++){
*(p+j)=*(p+j+1);
*(p+j+1)=value2;
}
for(p=a;p<(a+max);p++)
cout<<*p<<' ';
cout<<endl;
return 0;
}[/CODE]
我自己又加了个提取最小数的,但为什么最小数最后会变成10呢?无论最小那个是什么,都变成10的
随便把你程序修改好了 你先自己看下 如果还不明白你那里做错了 再说
#include<iostream>
using namespace std;
int main()
{
const int max=10;
int a[max];
int *p=a;
int i,j,value1,value2;
int index1=0,index2;
cout<<"Enter the array number:";
for(i=0;i<max;i++)
{
cin>>*(p+i);
}
value1=*p;
value2=*p;
for(i=1;i<max;i++){
if(value1<*(p+i)){
value1=*(p+i);
index1=i;
}
}
for(i=index1;i>0;i--){
*(p+i)=*(p+i-1);
*(p+i-1)=value1;
}
for(j=1;j<max;j++){
if(value2>*(p+j)){
value2=*(p+j);
index2=j;
}
}
cout<<value1<<' '<<value2<<endl;
for(j=index2;j<max-1;j++){
*(p+j)=*(p+j+1);
*(p+j+1)=value2;
}
for(p=a;p<(a+max);p++)
cout<<*p<<' ';
cout<<endl;
return 0;
}