| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 365 人关注过本帖
标题:【新手】关于数组的问题,暂时还没想清楚,请教大家一下。
只看楼主 加入收藏
huili46
Rank: 1
来 自:湖北武汉
等 级:新手上路
帖 子:10
专家分:7
注 册:2012-6-10
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:2 
【新手】关于数组的问题,暂时还没想清楚,请教大家一下。
程序代码:
#include<stdio.h>
#include<stdlib.h>
void main()
{
    int min,i,j,k,a[5],temp;
    printf("Enter 5 numbers:\n");
    for(i=0;i<5;i++)
        scanf("%d",&a[i]);
    for(i=0;i<4;i++)
    {
        k=i+1;
        min=i;
        for(j=k;j<5;j++)
            if(a[min]>a[j]) min=j;
        temp=a[i];
        a[i]=a[min];
        a[min]=temp;
    }
    printf("The sorted numbers:\n");
    for(i=0;i<5;i++)
        printf("%d,",a[i]);
    system("pause");
}

这是书上的例题答案。输入50 40 30 20 10的时候,输出10 20 30 40 50.我自己不看书编的时候把min=j写成了a[min]=a[j]结果输出是一串10 10 10 10 10 10。我也不知道问题出在哪里。是不是a[min]=a[j]和min=j有着完全不同的含义啊?求高手点拨一下。
2012-06-18 09:06
pauljames
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:千里冰封
威 望:9
帖 子:1555
专家分:10000
注 册:2011-5-8
收藏
得分:10 
一个是下标,一个是下标对应的数组元素,当然完全不同了

经常不在线不能及时回复短消息,如有c/单片机/运动控制/数据采集等方面的项目难题可加qq1921826084。
2012-06-19 06:17
csxuedn
Rank: 2
等 级:论坛游民
帖 子:15
专家分:48
注 册:2012-6-15
收藏
得分:10 
楼主请看:i=j:交换的是下表,但是数组中的数值并没有改变,只是交换了,可以实现排序……
         而a[i]=b[i]则相当于对a[i]进行重新赋值了……所以会出现:10 10 10 10 10 10
2012-06-19 08:07
快速回复:【新手】关于数组的问题,暂时还没想清楚,请教大家一下。
数据加载中...
 
   



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

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