1 条题解

  • 0
    @ 2023-6-11 12:15:50

    C :

    #include<stdio.h> 
    
    int main(){ 
    	int n,a[101],i,j,temp,min,k;
    	
    	scanf("%d",&n);
    	
    	for(i = 0;i < n;i++){
    		scanf("%d",&a[i]);
    	}
    
    	//找到最小的值 
    	min = a[1];  //假设第二个元素为最小元素 
    	for(j = 2;j < n;j++){
    		if(a[j] < min) min = a[j];	  
    	} 
    	//因为是从左边开始循序,所有如果发现与最小值相等的元素,就停下,当前的下标就是交换的下标 
    	for(j = 1;j < n;j++){
    		if(a[j] == min){ 
    			k = j;//最小值最早出现的下标 
    			break; 
    		} 	
    	} 
    	
    	
    	if(a[0] >= a[k]){ 
    		temp = a[0];
    		a[0] = a[k];
    		a[k] = temp; 
    	}else{
    		k = 0; 
    	} 
    	
    	printf("%d\n",k+1) ;
    	
    	for(i = 0;i<n;i++){
    		printf("%d ",a[i]); 
    	} 
    
    	
    	return 0; 
    	  
    } 
    
    

    C++ :

    #include <iostream>
    #include <iomanip>
    #include <cmath>
    
    using namespace std;
    
    int main(){
    	int a[100],n,s=0,m=1000000000,x,i;
    	cin>>n;
    	for(int i=0;i<n;i++){
    		cin>>a[i];
    		if(a[i]<m){
    			m=a[i];
    		}
    	}
    	for(i=0;i<n;i++){
    		if(m==a[i]){
    			cout<<i+1<<endl;
    			break;
    		}
    	}
    	x=a[0];
    	a[0]=a[i];
    	a[i]=x;
    	for(i=0;i<n;i++){
    		cout<<a[i]<<" ";
    	}
    	
    }
    

    Python :

    n=int(input())
    l1=list(map(int,input().split()))
    m=min(l1) #最小值
    i=l1.index(m) #最小值下标
    t=l1[0]     #最小值下标与0对调
    l1[0]=l1[i]
    l1[i]=t
    print(i + 1)
    for i in l1:
        print(i,end=' ')
    
    • 1

    信息

    ID
    2077
    时间
    1000ms
    内存
    16MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者