在交换PTA最小值和最大值的问题中,必须编写一个程序,以第一个数交换最初输入的一系列整数的最小值,然后以最后一个数交换最大值,并输出最后交换的序列。
注意:主题确保最大和最小都是唯一的。
输入格式:
第一行指定正整数N(10,第二行指定n个整数,数字之间用空格分隔。
输出格式:
将交换后的序列逐行依次输出,整数后加一个空格。
输入示例:
5
8 2 5 1 4
末尾没有空行
输出示例:
1 2 5 4 8
末尾没有空行
#includestdio.hintmain(void ) {int n,min,max,icount=0,acount=0,t; scanf('%d ',n ); //用户输入的数量nint a[10]={0}; for(intI=0; in; I ) Scanf('%d ',a[i]; //依次访问用户输入的值并保存到数组getchar (; }max=a[0]; //定义相同的数组类型时min=a[0]; for(intj=1; jn; j () if ) { { min=a [ j ] } min=a [ j ]; icount=j; //最小值下标(if(MAXA[j] ) {max=a[j]; acount=j; //最大下标}}t=a[0]; //交换变量法a[0]=a[icount]; a[icount]=t; //最小值和第一位变换if(acount==0)//保证最大值和最小值唯一,没有重新筛选最大值或最小值acount=icount最小值或最大值下标同时t=a[n-1]; a[n-1]=a[acount]; a[acount]=t; //交换最大值和最后一位的for (intk=0; kn; k () printf('%d ',a[k] ); }