| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 676 人关注过本帖
标题:我知道这段c语言是排序,我就想知道它的答案15 20 28 32 36 47是怎么 ...
只看楼主 加入收藏
ppppphh
Rank: 1
等 级:禁止访问
帖 子:106
专家分:0
注 册:2010-4-11
结帖率:75%
收藏
已结贴  问题点数:20 回复次数:9 
我知道这段c语言是排序,我就想知道它的答案15 20 28 32 36 47是怎么算出来的
#include<stdio.h>
 void     selectsort(int  a[],int  n)
{
              int i,j,k,x;
              for(i=1;i<n;i++)  {    //进行n-1次选择和交换
                      k=i-1;
                      for(j=i;j<n;j++)
                                if(a[j]<a[k]) k=j;
                      x=a[i-1]; a[i-1]=a[k];a[k]=x;
              }
}

void main()
{
        int  i;
        int  a[6]={20,15,32,47,36,28};
        selsctsort(a,6);
        for(i=0;i<6;i++) printf("%d ",a[i]);
        printf("\n");
}

请高手解答
搜索更多相关主题的帖子: c语言 
2010-06-29 19:22
ppppphh
Rank: 1
等 级:禁止访问
帖 子:106
专家分:0
注 册:2010-4-11
收藏
得分:0 
这段c语言是什么意思
#include<stdio.h>
#include<string.h>
struct  worker {
         char  name[15];   
         int  age;
         float  pay;
};
int  Equal(struct  Worker*  r1, struct    Worker*    r2)
{
      if(strcmp(r1—〉name, r2—〉name)==0) return  1;
      else   return  0;
}


void main(){
        struct   Worker  a[4]={{"abc",25,420),{"defa",58,638},
                                           {"ghin",49,560},{"jklt",36,375}}:
       struct  Worker  x={"defa"};
       int  i;
        for(i=0;i<4;i++)
                if(Equal(a+i,&x))  break;
        if(i>=4)  printf("没有查找所需要的记录!\n");
        else   printf("%s    %d    56.2f\n:,a[i],name.a[i],age,a[i],pay);
}
请高手解答
2010-06-29 19:42
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
收藏
得分:0 
回复 楼主 ppppphh
void     selectsort(int  a[],int  n)
{
              int i,j,k,x;
              for(i=1;i<n;i++)  {    //进行n-1次选择和交换
                      k=i-1;//当前位置,循环中依次为0,1,2....,此时将a[k]这个值设为最小值
                      for(j=i;j<n;j++)
                                if(a[j]<a[k]) k=j;//从当前位置向右直到结束,找出真正的最小元素的位置a[k]
                      x=a[i-1]; a[i-1]=a[k];a[k]=x;//当最小值与当前位置值交换,这样最小值就到了前面(下一次循环将当前位置向右移到一个)
              }
}

★★★★★为人民服务★★★★★
2010-06-29 20:14
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
收藏
得分:0 
回复 2楼 ppppphh
这段程序实现了一个查找功能

★★★★★为人民服务★★★★★
2010-06-29 20:16
rainbow1
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:2
帖 子:277
专家分:839
注 册:2010-5-19
收藏
得分:0 
for(j=i;j<n;j++)
{
   if(a[j]<a[k])
    k=j;
    x=a[i-1]; a[i-1]=a[k];a[k]=x;
}

加上大括号,试一下。
2010-06-29 20:38
sunyh1999
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:14
帖 子:1178
专家分:3032
注 册:2009-5-17
收藏
得分:0 
这是一个排序
程序代码:
#include<stdio.h>
void     selectsort(int  a[],int  n)
{
              int i,j,k,x;
              for(i=1;i<n;i++)  {    //进行n-1次选择和交换
                      k=i-1;
                      for(j=i;j<n;j++)
                                if(a[j]<a[k]) k=j;;//循环中依次为0,1,2……此时将a[k]这个值设为最小值

                      x=a[i-1]; a[i-1]=a[k];a[k]=x;//数值的交换,用了变量X来储存
              }
}

void main()
{
        int  i;\\定义了一个整数型变量i
        int  a[6]={20,15,32,47,36,28};\\定义了6个数组元素a[6]
        selsctsort(a,6);\\调用函数selsctsort,将数值传递
        for(i=0;i<6;i++) printf("%d ",a[i]);\\输出
        printf("\n");\\打印换行
}
解释完了,你看看


欢迎来到我的博客:http://blog..cn/noisunyuhong
2010-06-30 11:54
key8714
Rank: 2
等 级:论坛游民
帖 子:48
专家分:87
注 册:2010-6-9
收藏
得分:0 
#include<stdio.h>
#include<stdlib.h>
void     selectsort(int  a[],int  n)
{
              int i,j,k,x;
              for(i=1;i<n;i++)  {    //进行n-1次选择和交换
                      k=i-1;
                      for(j=i;j<n;j++)
                                if(a[j]<a[k]) k=j;;//循环中依次为0,1,2……此时将a[k]这个值设为最小值

                      x=a[i-1]; a[i-1]=a[k];a[k]=x;//数值的交换,用了变量X来储存
              }
}

 int main()
{
        int  i;//定义了一个整数型变量i
        int  a[6]={20,15,32,47,36,28};//定义了6个数组元素a[6]
        selectsort(a,6);//调用函数selsctsort,将数值传递
        for(i=0;i<6;i++) printf("%d ",a[i]);//输出
        printf("\n");//打印换行
        system("pause");
}
2010-06-30 21:54
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
收藏
得分:0 
回复 5楼 rainbow1
加上效率就浪费了!!!

★★★★★为人民服务★★★★★
2010-07-01 08:25
Free自然
Rank: 1
等 级:新手上路
帖 子:23
专家分:3
注 册:2008-3-23
收藏
得分:0 
\\搂住问了好多阿 ..........

#include<stdio.h>
#include<string.h>
#include<stdlib.h>

struct  worker
    {
    char name[15];   
    int age;
    float pay;
    };

int Equal(struct  worker*  r1, struct    worker*    r2)
{
      if(strcmp(r1->name, r2->name) == 0) return  1;
      else   return  0;
}


void main()
{
    struct worker a[4]={{"abc",25,420},{"defa",58,638},
                                           {"ghin",49,560},{"jklt",36,375}};
    struct worker  x={"defa"};
    int  i;
    for(i=0;i<4;i++)
            if(Equal(a+i,&x))  break;
    if(i>=4)  printf("没有查找所需要的记录!\n");
    else   printf("%s    %d    %6.2f\n",a[i].name,a[i].age,a[i].pay);   

    printf("%s    %d    %6.2f\n",x.name,x.age,x.pay);   
    system("pause");

}

求某工人的信息.
2010-07-01 17:24
xiaweiqiang
Rank: 2
等 级:论坛游民
帖 子:27
专家分:82
注 册:2010-7-1
收藏
得分:20 
就是将第一个与后面的一个比较  大的就交换  不停的循环的过程、   循环完了就出现了你想要的有序序列
2010-07-01 17:26
快速回复:我知道这段c语言是排序,我就想知道它的答案15 20 28 32 36 47是 ...
数据加载中...
 
   



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

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