| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 646 人关注过本帖, 1 人收藏
标题:每日一个简单程序之HDU2016
取消只看楼主 加入收藏
showsadd
Rank: 1
来 自:武汉
等 级:新手上路
帖 子:17
专家分:5
注 册:2013-3-18
结帖率:100%
收藏(1)
已结贴  问题点数:20 回复次数:1 
每日一个简单程序之HDU2016
最近有点乱,工作上不是很轻松,所以学习和刷题的进度奇差无比,好不容今天做了个题目,一直提示,输出格式错误,
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
那么聪明的各位,能帮我纠正下我的代码中的问题吗
程序代码:
#include<stdio.h>
int main()
{
    int n,i,temp,m=0,a[99],min;
    while(scanf("%d",&n))//很多人都写//while(scanf("%d",&n),n),我不懂这是什么意思,求教
    {
        if(n==0)
            break;//输入的n为0时,直接结束程序
        scanf("%d",&a[0]);//给数组第一元素a[0]赋值,用于后期比较
        min=a[0];//将a[0]设为最小值先
        for(i=1;i<n;i++)
        {
            scanf("%d",&a[i]);//i设初值为1,这样是从数组第二个元素开始输入
            if(a[i]<min)
            {
                m=i;
                min=a[m];    //比较过程,将i这这个过程中的值,标记为m,因为for循环有个奇怪的地方,
                            //当i判断小于n,比如n=5的时候,i在为4时退出循环,但是i++这个表达式把i++的
                    //的值储存了下来,所以,在跳出循环使用i,i就编程5,而不是你想要的那个4,或者其他
            }
        }
        temp=a[0];           //转换过程,将标记的最小的数值与a[0]交换
        a[0]=a[m];           //
        a[m]=temp;           //
        for(i=0;i<n;i++)
            printf("%d",a[i]);//输出数组就可以了
       
        m=0;       //这里的话,有个小陷阱,比如你输入n=5,然后分别输入,1,2,3,4,5;
                 //他会输出一个正确的排序,即1,2,3,4,5,
               //而如果你输入n=5,然后输入,2,1,3,4,5,那么此时的m,即为1,元素a[1];
             //当你下次再输入n=5,然后1,2,3,4,5,的时候,m=1被储存了下来,输出就成了2,1,3,4,5,
        //故,m在每次结束循环时,归0;
       
    }
}
代码我自己精简了半天,而且我认为比网上AC的答案要容易懂,注释很多,希望大家能快些看懂,帮我解决这个问题,谢谢各位。
2013-05-04 23:20
showsadd
Rank: 1
来 自:武汉
等 级:新手上路
帖 子:17
专家分:5
注 册:2013-3-18
收藏
得分:0 
回复 3楼 Ryker
这个是我要的回答之一,谢谢
2013-05-05 12:09
快速回复:每日一个简单程序之HDU2016
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025562 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved