zoukankan      html  css  js  c++  java
  • 【2003】找出数列中的最小数,把它与数列的第一个数对调。

    Time Limit: 3 second
    Memory Limit: 2 MB

    编写程序,实现以下功能:输入n个整数,请找出数列中最小数所在的位置(有多个最小数,则选最左边的那个最小数),把它与数列的第一个数对调,其他数的位置不动,输出此数列。

    例如:输入n: 5
    输入数组第一元素:11
    输入数组第二元素:23
    输入数组第三元素:5
    输入数组第四元素:68
    输入数组第五元素:74
    输出新的数组:5 23 11 68 74

    Input

    输入数组元素个数n的值和数列。
    第一行输入n的数值
    第二行输入数组第一元素
    第三行输入数组第二元素
    ......
    第n+1行输入数组第n元素

    Output

    输出新的数组,每个元素之间用空格隔开

    Sample Input

    5
    11
    23
    5
    68
    74
    

    Sample Output

    5 23 11 68 74(最后一个数的后面没有空格)

    【题解】

    记录最小的值和最小值的数组下标,最后换一下就可以

    【代码】

    #include <iostream>
    #include <cstdio>
    
    using namespace std;
    
    const int MAXN = 32767;
    
    int n,a[MAXN],post=1;
    
    void input_data()
    {
    	//freopen("E:\rush.txt","r",stdin);
    	cin >> n;	
    	for (int i=1;i<=n;i++) //输入数据 
    		cin >> a[i];
    }
    
    void trytoget_ans()
    {
    	int min = a[1]; //先让最小值为第一个数字 
    	for (int i=2;i<=n;i++)//在2-n中尝试更新最小值 
    		if (a[i]<min)
    			{
    				min = a[i];
    				post = i;	//记录数组下标 
    			}
    	a[post] = a[1];//和第一个数字互换 
    	a[1] = min;
    }	
    
    void output_ans()
    {
    	cout << a[1]; 
    	for (int i=2;i<=n;i++)
    		cout << " " << a[i];	
    }
    
    int main()
    {
    	input_data();
    	trytoget_ans();
    	output_ans();
    	return 0;	
    }
    


  • 相关阅读:
    js:DOM及其操作2
    js:DOM及其操作
    闭包,作用域,作用域链
    面向对象
    关于typeof
    javascript正则表达式&关键词检索
    关于StringAPI
    mybatis Invalid bound statement (not found)
    全国区域数据
    redis 问题整理
  • 原文地址:https://www.cnblogs.com/AWCXV/p/7632510.html
Copyright © 2011-2022 走看看