C语言-数字交换
注意特判max可能在a[0]位置,此时调换最小值后最大值下标会不准确,需要将最大值下标更新为上一步交换后的下标。
int a[10];
int main()
{
string line;
while(getline(cin,line))
{
stringstream ss(line);
int minIndex=0,maxIndex=0;
for(int i=0;i<10;i++)
{
ss>>a[i];
if(a[i] < a[minIndex]) minIndex=i;
if(a[i] > a[maxIndex]) maxIndex=i;
}
swap(a[0],a[minIndex]);
if(maxIndex == 0) maxIndex=minIndex;
swap(a[9],a[maxIndex]);
for(int i=0;i<10;i++)
cout<<a[i]<<' ';
cout<<endl;
}
//system("pause");
return 0;
}