1 条题解
-
0
C :
#include<stdio.h> void main(){ int a[96]; int n,i,t,p,max=0,min=0; scanf("%d",&n); for(i=0;i<n;i++){ scanf("%d",&a[i]); } for(i=1;i<n;i++){ if(a[i]<a[min]){ min=i; } } t=a[min]; a[min]=a[0]; a[0]=t; for(i=1;i<n;i++){ if(a[i]>a[max]){ max=i; } } p=a[max]; a[max]=a[n-1]; a[n-1]=p; for(i=0;i<n;i++){ printf("%d ",a[i]); } }C++ :
#include <iostream> using namespace std; int main(){ int i,n,x,y; int a[11]; cin>>n; //读入数组元素 for(i = 0;i < n;i++){ cin>>a[i]; } int max = 0; int min = 0; for(i = 1;i < n;i++){ if(a[i] < a[min]){ min = i; } if(a[i] > a[max]){ max = i; } } int t; if(min != 0){ t = a[min]; a[min] = a[0]; a[0] = t; } if(max != n - 1){ t = a[max]; a[max] = a[n - 1]; a[n - 1] = t; } for(i = 0;i < n;i++){ cout<<a[i]<<" "; } }Pascal :
program liumohan; var i,n,t,m,x:longint; a:array[0..100] of longint; begin readln(n); t:=99999; for i:=1 to n do read(a[i]); for i:=1 to n do if t>a[i] then begin t:=a[i]; x:=i; end; m:=a[1]; a[1]:=t; a[x]:=m; for i:=1 to n do if t<a[i] then begin t:=a[i]; x:=i; end; m:=a[n]; a[n]:=t; a[x]:=m; for i:=1 to n do write(a[i],' '); end.Java :
import java.util.Scanner; public class Main { public static void main(String args[]){ Scanner sc = new Scanner(System.in); int n=sc.nextInt(); int[] a=new int[n]; for(int i=0;i<n;i++){ a[i]=sc.nextInt(); } int maxnum=a[0],minnum=a[0],maxpo=0,minpo=0; for(int i=0;i<n;i++){ if(a[i]>maxnum){ maxnum=a[i]; maxpo=i; } } for(int i=0;i<n;i++){ if(a[i]<minnum){ minnum=a[i]; minpo=i; } } a[minpo]=a[0]; a[0]=minnum; a[maxpo]=a[n-1]; a[n-1]=maxnum; for(int i=0;i<n;i++){ System.out.print(a[i]+" "); } } }Python :
n = int(input()) s = input().split() l = [] for v in s: l.append(int(v)) ma = max(l) mi = min(l) # 遍历l列表,找出最大值和最小值的位置 for i in range(0, n): # 如果l[i]==ma(最大值),则与最后一个数l[n-1]交换位置 if l[i] == ma: l[n - 1], l[i] = ma, l[n - 1] # 如果l[i]==ma(最小值),则与第一个数l[0]交换位置 if l[i] == mi: l[0], l[i] = mi, l[0] for i in range(0, n): print(l[i], end=' ')
- 1
信息
- ID
- 207
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- 递交数
- 4
- 已通过
- 1
- 上传者