hdoj-2016-数据的交换输出(解题报告)

    xiaoxiao2021-04-14  57

    题目来源:http://acm.hdu.edu.cn/showproblem.php?pid=2016

    问题描述:

    数据的交换输出

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 103312    Accepted Submission(s): 38586

    Problem Description

    输入n(n<100)个数,找出其中最小的数,将它与最前面的数交换后输出这些数。

    Input

    输入数据有多组,每组占一行,每行的开始是一个整数n,表示这个测试实例的数值的个数,跟着就是n个整数。n=0表示输入的结束,不做处理。

    Output

    对于每组输入数据,输出交换后的数列,每组输出占一行。

    Sample Input

    4 2 1 3 4 5 5 4 3 2 1 0

    Sample Output

    1 2 3 4 1 4 3 2 5

    Author

    lcy  

    题目分析:找出每组数据中最小的数,与第一个数交换。

    解题思路:找出每组数据中最小的数,并将它与第一个数交换,输出新数组。

    错误原因:m没有赋初始值

    代码实现:

    #include<stdio.h> int main (void) { int n,m,a[110],i,min,t; while(scanf("%d",&n),n!=0) { for(i=0;i<n;i++) scanf("%d",&a[i]); min=a[0];m=0; for(i=1;i<n;i++)//找出最小的数 { if(a[i]<min) { min=a[i]; m=i; } } t=a[m];a[m]=a[0];a[0]=t;//与数据中第一个数交换 printf("%d",a[0]); for(i=1;i<n;i++) printf(" %d",a[i]); printf("\n"); } return 0; }

     

     

    转载请注明原文地址: https://ju.6miu.com/read-670458.html

    最新回复(0)