| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2799 人关注过本帖
标题:数据的交换输出
只看楼主 加入收藏
hypocrisy
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2012-11-7
结帖率:33.33%
收藏
已结贴  问题点数:10 回复次数:4 
数据的交换输出









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 a[100],i,j,n,min,t;
    while(scanf("%d",&n)!=EOF)
    {
        if(n==0)
            break;
        else
            for(i=1;i<n;i++)
            scanf("%d",&a[i]);
            for(i=1,min=a[0];i<n;i++)
            {
                if(a[i]<min)
                    min=a[i];
            }
                t=a[i];
                a[i]=a[0];
                a[0]=t;
            
                for(j=0;j<n;j++)
                {
                    printf("%d ",a[j]);
                }
                printf("\n");
            
    }
            return 0;
}
请问哪里出错??
搜索更多相关主题的帖子: include 
2012-11-10 00:18
hh373231690
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:67
专家分:138
注 册:2012-10-13
收藏
得分:5 
回复 楼主 hypocrisy
t=a[i];
 a[i]=a[0];
 a[0]=t;
在这里 你找到的最小值是保存在min中的,而不是a[i]
2012-11-10 01:49
hh373231690
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:67
专家分:138
注 册:2012-10-13
收藏
得分:0 
回复 楼主 hypocrisy
for(i=1;i<n;i++)
            scanf("%d",&a[i]);
在这里,for循环的i初值问题..改完这两点程序就跑对了~~我试过了..具体改动楼主自己解决吧,把代码写出来就没意思了,多思考思考
2012-11-10 02:01
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:5 
这样应该可以了

#include<stdio.h>
int main()
{
    int a[100],i,n,min,minpos;
    while(scanf("%d",&n)!=EOF)
    {
        if(n==0)
            break;
        else
            for(i=0;i<n;i++)
            scanf("%d",&a[i]);
            min=a[0];
            minpos=0;
            for(i=0;i<n;i++)
            {
                if(a[i]<min)
                {
                    min=a[i];
                    minpos=i;   //增加找到最小元素所在的下标
                }
            
            }
                a[minpos]=a[0];
                a[0]=min;
            
                for(i=0;i<n;i++)
                {
                    printf("%d ",a[i]);
                }
                printf("\n");
            
    }
            return 0;
}

DO IT YOURSELF !
2012-11-10 07:33
hh373231690
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:67
专家分:138
注 册:2012-10-13
收藏
得分:0 
回复 4楼 wp231957
我觉得这些小问题 不需要给出代码的 稍微思考一下就可以想的明白~~给点提示,自己去摸索,学习才更有效
2012-11-10 12:29
快速回复:数据的交换输出
数据加载中...
 
   



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

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