• 2017.11.8


    交换输出

    时间限制:3000 ms  |  内存限制:65535 KB
    难度:1
     
    描述
    输入n(n<100)个数,找出其中最小的数,将它与最前面的数交换后输出这些数。(如果这个第一个数就是最小的数,则保持原样输出,如果最小的数有相同的按照前面的交换)
     
    输入
    输入数据有多组,每组占一行,每行的开始是一个整数n,表示这个测试实例的数值的个数,跟着就是n个整数。n=0表示输入的结束,不做处理。
    输出
    对于每组输入数据,输出交换后的数列,每组输出占一行。
    样例输入
    4 2 1 3 4
    5 5 4 3 2 1
    0
    样例输出
    1 2 3 4
    1 4 3 2 5


    #include<iostream>
    #include<string>
    #include<stack> //出入栈头文件
    using namespace std;
    int main()
    {
    int n=0;
    cin>>n;
    int array[n]; //用于排序的数组,其实更好的方法是不用进行排序的
    int arr1[n]; //用于保存原来输入的原始数据
    int m=0; //用于存储最小数所在的位置
    for(int k=0;k<n;k++)
    {
    cin>>array[k];
    arr1[k]=array[k];
    }
    for(int i=1;i<n;i++) //插入排序法
    {
    int temp=array[i];
    int j=i-1;
    while(j>=0&&array[j]>temp)
    {
    array[j+1]=array[j];
    j--;
    }
    array[j+1]=temp;
    }
    for(int k=0;k<n;k++)//计算出 原始数据中最小数所在的位置,方便后面交换
    {
    if(arr1[k]==array[0])
    m=k;
    }
    int temp2=arr1[0]; //交换最小数与原来数据的第一位
    arr1[0]=array[0];
    arr1[m]=temp2;
    for(int k=0;k<n;k++)//输出
    {
    cout<<arr1[k]<<' ';

    }
    return 0;
    }



  • 相关阅读:
    day02_05.除数与被除数
    day02_04.算算多少人
    day02_03.五个数字一行输出
    day02_02.能被3整除的个位数为6的数
    day02_01.能被3整除的数
    day05_10 作业
    day05_09 列表内置方法
    day05_08 列表讲解、切片、内置方法
    day05_07 标志位讲解
    day05_06 continue语句、while循环
  • 原文地址:https://www.cnblogs.com/panlangen/p/7806797.html
Copyright © 2020-2023  润新知